6

I working with jQuery and I need to get anytime and anywere exception (with any operation), if I attach some event or try to perform some action with elements (got from selector) that don't exist. Is there some internal "strict" mode in jQuery for this issue?

Alex Ivasyuv
  • 8,217
  • 17
  • 67
  • 89

3 Answers3

7

No, there isn't.

However, you could make a simple plugin for it:

$.fn.checkEmpty = function() {
    if (!this.length)
        throw new Error("No elements matched by " + this.selector);
    return this;
};

$('...').checkEmpty().bind(...);

Alternatively:

function $s() { return $.apply(this, arguments).checkEmpty(); }

$s('...').bind(...);
SLaks
  • 837,282
  • 173
  • 1,862
  • 1,933
1

Check this post for ways to handle an "exists"

Exists in jquery

Community
  • 1
  • 1
Mark Schultheiss
  • 30,473
  • 11
  • 66
  • 95
0

No, this is the beauty of jQuery.

You could create a wrapper function

function myjQuery() {
  var res = $.apply(this, arguments);

  if (!res.size()) {
    throw new Error("No elements matched :(");
  };

  return res;
};

myjQuery('input').each();

This won't mask empty sets returned by using find() or filter() and the like, but humm...

Matt
  • 72,564
  • 26
  • 147
  • 178