2011-11-21 52 views
5

因爲一旦怎麼來的..如何隱藏多重選擇器使用jQuery

$("div.toggle1").hide(); 
    $("div.toggle3").hide(); 
      $("div.toggle4").hide(); 
      $("div.toggle5").hide(); 

並不等同放着清單此...

  $('#container div').not('.toggle2').hide(); 

上click事件的發生,但它不」 t的工作方式與手動輸入多個hide()標籤相同。我只是想減少我在父母#container div中添加的每個div的hide()標籤用法。

+0

嘗試從選擇器在第二殼體去除'#container'。現在這兩種情況下的結果是否相同? – Tadeck

+1

發表您的標記 –

+5

這兩個對我來說是相當的..見:http://jsfiddle.net/jli1/nVNDA/(只是評論/取消註釋和重新運行) – jli

回答

10
$("div.toggle1, div.toggle3, div.toggle4, div.toggle5").hide(); 

或者乾脆放棄,你會隱藏在同一類中的每個DOM元素,你可以這樣做:

$('.hideClass').hide(); 
+0

好吧,我不知道你可以添加多個選擇器到像這樣咆哮,用逗號分開。這很酷,爲我工作。 – blackhawk

+0

perfecto。呵呵呵 –

0

您可以輕鬆地通過CSS控制。將一個隱藏的類添加到父容器中,該容器將具有display:none樣式。如果您不希望display:none與類toggle2的div,則覆蓋此元素的樣式。通過這種方式,您不必在所有容器上調用隱藏或選擇所有容器並調用隱藏方法。

嘗試此

.hidden{ 
    display:none; 
} 

.hidden .toggle2{ 
    display:block; 
} 

//This will add hidden class to the container which will 
//ultimately hide all the inner divs except div with class toggle2 
$('#container').addClass('hidden');