2010-05-11 51 views
4

我使用jQuery和我需要得到任何時間和anywere異常(任何操作),如果我附加一些事件或嘗試執行某些操作與元素(從選擇器)不存在。 在這個問題jQuery中有一些內部的「嚴格」模式?jQuery異常,如果元素不存在

回答

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

檢查這個職位的方式來處理「存在」

Exists in jquery

+1

這並不回答問題。 – SLaks 2010-05-11 17:36:32

+0

對,嚴格模式的真正答案是「否」,沒有模式。這只是指出了一些替代方案。 – 2010-05-12 11:49:01