2013-05-16 75 views
1

我有類似如下:如何用jQuery選擇或排除多個元素?

<div id="div1" style="display: block;"> 
text 
</div> 

<div id="div2" style="display: none;"> 
text 
</div> 

<div id="div3" style="display: none;"> 
text 
</div> 

當某個事件發生時,我想隱藏所有,但一個DIV。所以,例如,我可能想要顯示div2,同時隱藏div1和div3。問題是,div的數量是任意的,所以我不能簡單地去:

$("#div1").css("display", "none"); 
$("#div2").css("display", "block"); 
$("#div3").css("display", "none"); 

因爲可能有一個div或可能有四個。

我該如何做到這一點與jQuery?

+0

什麼樣的事件?這些div有什麼共同之處嗎?他們有同一個家長嗎?除了divs之外,還有其他元素是這些div的兄弟嗎? –

+0

你可以添加一個類的divs? – tymeJV

+0

@wirey - 例如,假設我在每個div對應的頁面上打印了一個數字(所以如果有四個div,那麼會有數字1-4),然後當點擊一個數字時,我希望相應的div變得可見。不完全是我在做什麼,只是一個例子。我可以讓他們有同一個父母,是的。 – Nate

回答

3

首先,讓我們一類添加到您的div

<div id="div1" class="someDiv" style="display: block;"> 
text 
</div> 

<div id="div2" class="someDiv" style="display: none;"> 
text 
</div> 

<div id="div3" class="someDiv" style="display: none;"> 
text 
</div> 

假設你的號碼在列表中:

<ul> 
<li>1</li> 
<li>2</li> 
<li>3</li> 
</ul> 

而jQuery的

$("ul li").click(function() { 
    var divNum = $(this).text(); 
    $(".someDiv").hide(); 
    $("#div" + divNum).show(); 
}); 
1

你尋找到jQuery選擇.. 可以使用通配符,選擇多個元素,第一個和最後和更多..

$("#div1, $div2") (selects multiple divs) 
$("$divX > first) (all elements with the same id, gets the first) 
$("[id^=div]") (get's all elements starting with id div) 

http://www.w3schools.com/jquery/jquery_ref_selectors.asp

+1

[請不要鏈接到w3schools。](http://w3fools.com/) – michaelb958

+0

爲什麼不michaelb958?那有什麼問題? –

+2

點擊鏈接瞭解詳細信息。 (總結:這個地方充滿了不準確,虛假陳述,錯誤和內部不一致。) – michaelb958

3

Here's an example jsFiddle

我真的不知道你想要什麼樣的事件,或者如果你允許我們使用類,所以我change()去:

的jQuery:

$('select').change(function(){ 
    $('div').hide(); 
    $('div#' + this.value).show(); 
}); 

HTML :

<select> 
    <option>1</option> 
    <option>2</option> 
    <option>3</option> 
</select> 

<div id="1">1</div> 
<div id="2">2</div> 
<div id="3">3</div> 
2

給他們一個共同的類,例如,使用的單擊事件:

$('.foo').click(function() { 
    $('.foo').not(this).hide(); 
}); 
0

您可以這樣做,在您的活動功能上:

function(){ 
    $('#div' + $(this).val()).show().siblings('div').hide(); 
} 
相關問題