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?
+4
A:
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
2010-05-11 15:51:24
A:
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
2010-05-11 15:53:01
This does not answer the question.
SLaks
2010-05-11 17:36:32
Right, the real answer is "no" for strict mode, there are no modes. This just points out some alternatives.
Mark Schultheiss
2010-05-12 11:49:01