我使用jQuery和我需要得到任何時間和anywere異常(任何操作),如果我附加一些事件或嘗試執行某些操作與元素(從選擇器)不存在。 在這個問題jQuery中有一些內部的「嚴格」模式?jQuery異常,如果元素不存在
4
A
回答
5
不,沒有。
但是,你可以把它簡單的插件:
$.fn.checkEmpty = function() {
if (!this.length)
throw new Error("No elements matched by " + this.selector);
return this;
};
$('...').checkEmpty().bind(...);
或者:
function $s() { return $.apply(this, arguments).checkEmpty(); }
$s('...').bind(...);
0
不,這是jQuery的美景。
您可以創建一個包裝函數
function myjQuery() {
var res = $.apply(this, arguments);
if (!res.size()) {
throw new Error("No elements matched :(");
};
return res;
};
myjQuery('input').each();
這不會掩蓋使用find()
或filter()
之類返回的空集,但赫姆...
1
檢查這個職位的方式來處理「存在」
這並不回答問題。 – SLaks 2010-05-11 17:36:32
對,嚴格模式的真正答案是「否」,沒有模式。這只是指出了一些替代方案。 – 2010-05-12 11:49:01