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?

3 Answers 3

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(...);
Sign up to request clarification or add additional context in comments.

Comments

1

Check this post for ways to handle an "exists"

Exists in jquery

2 Comments

This does not answer the question.
Right, the real answer is "no" for strict mode, there are no modes. This just points out some alternatives.
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...

1 Comment

How come you see this as ‘beauty’?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.