2011-01-25 118 views
9

可能重複:
Is there an 「exists」 function for jQuery
jQuery determining if element exists on page檢查元素存在

if(tr)時TR不是一個元素返回true,我如何檢查它是否存在一個元素?

var tr = $('#parts-table .no-data').parent(); 
$('.delete', row).bind('click', function (e) { 
    that.delete(e.currentTarget); 
}); 
console.log(tr); 
if (tr) //returns true when it shouldn't 
+0

它評估爲true的原因是因爲您得到一個jQuery對象,無論它是否找到元素,它總是被視爲真實的。 – BoltClock 2011-01-25 16:16:13

回答

31

檢查其length屬性:

if(tr.length) { 
    // exists 
} 

if(tr)結果始終爲true,因爲一個jQuery對象,或任何 JavaScript對象對於這個問題,始終是truthy。

2

這是因爲tr是一個jQuery對象,它是truthy(即使jQuery對象爲空)。改爲使用if (tr.length),當length不爲零時爲true,當爲零時爲false。或者,交替地,if (tr[0])

0

如何:

if (tr.size() == 0) 
0

試試這個

var tr = $('#parts-table .no-data').parent().length; 
6

我總是在我的JS文件的開頭添加這一點jQuery的片段

jQuery.fn.exists = function(){return jQuery(this).length>0;} 

中採用相同的辦法很多這裏有建議,但是它也允許你訪問是否存在這樣的對象:

if ($('#toolbar').exists()){ 
    $('#toolbar').load(..., function(){...}); 
    //etc... 
}