2011-11-14 99 views
8

我正在處理一些複雜的形式。在此選擇所有輸入,標籤,選擇等 - 每個循環

只是想知道,有沒有更好的方式來做到這一點:

$('.selector').each(function(){ 

    $("input", this).prop('disabled', true); 
    $("select", this).prop('disabled', true); 
    $("label", this).prop('disabled', true); 
    $("textarea", this).prop('disabled', true); 

}); 

我想內this(目前通過.selector循環)選擇全部輸入。 我是否正確地做這件事?

+1

是的,在技術上。雖然下面的@ BoltClock的答案是這樣做的更好的方法。 – rossipedia

回答

16

這很好,但爲了簡化它,你應該能夠使用逗號,你會到組中的任何其他選擇:

$('.selector').each(function() { 
    $('input, select, label, textarea', this).prop('disabled', true); 
}); 

如果你正在做的唯一事情是設置在那些元素屬性,那麼你並不需要.each()循環。您可以放心地將其減少並將其減少到這一行:

$('input, select, label, textarea', '.selector').prop('disabled', true); 
+0

'$(「。selector input,.selector select,.selector label,.selector textarea」)。prop('disabled',true);'equivalent? –

+0

@Brian M. Hunt:應該是。此外,'$('。selector')。find('input,select,label,textarea')。prop('disabled',true);' – BoltClock

+0

整潔。我想知道他們之間是否有任何性能差異。 –