2013-08-17 64 views
0

在做某件事之前檢查現有標記是否合理?或者jQuery正在做的事情?刪除標記之前的jQuery檢查

這裏一個samplecode

$('#my_ul li.active').removeClass('active'); 

或...

if( $('#my_ul li.active').length) { 
    $('#my_ul li.active').removeClass('active'); 
} 
+0

A的內部結構非常簡單的方法,找出將是一個頁面,沒有匹配的元素上運行您的第一行代碼,看看如果你得到一個錯誤。 –

+0

[刪除它之前檢查元素的存在是否更好?](http://stackoverflow.com/questions/11897633/is-it-better-to-check-existence-of-an-element-之前刪除它) –

回答

1

jQuery爲選擇返回的每個元素做循環。因此,如果數組中有零個元素,則循環出現零次。拿這個例子

HTML

<ul> 
    <li>Hello World</li> 
</ul> 

的JavaScript是

var $('li'); 

,將返回元素的數組,如果你控制檯登錄它,它看起來像這樣;

[<li>Hello world</li>] 

因爲上面是一個數組,當jQuery循環時它會做一次。 但是,如果部分返回零的項目將不會發生循環有

$('div').removeClass(".myClass"); 

基本removeClass插件(這是它只是一個插件,這就是jQuery核心代碼的一部分的方式插件)

的插件會做這樣的事情;

$.each($('div), function() { 
    //some code to remove the class 
}) 

希望這有助於你瞭解的jQuery

3

不,它沒有任何意義。它既不快也不有用。不要這樣做。

根本就

$('#my_ul li').removeClass('active'); 

而且不會有任何的錯誤,即使沒有這樣的元素,即使li元素沒有active類。

+0

你快1秒! +1給你 – Sergio