2013-07-08 84 views
0

我有一個下拉在html中,它有3個選項,當我選擇其中任何形式div獲取 顯示的塊,但如果我選擇其他前一個沒有獲取沒有顯示,那我應該怎麼做?保持一個街區,別人沒有顯示選定的元素塊和其他元素沒有使用jquery

<select id="walker" name="walker"> 
<option value="">Select Walker</option> 
<option value="1">walker1</option><option value="2">walker2</option><option value="3">walker3</option></select> 

<div id="form_div"> 
<div id="walker1" style="display:none;"></div> 
<div id="walker2" style="display:none;"></div> 
<div id="walker3" style="display:none;"></div> 
</div> 

     $("#walker").change(function(){ 
       var numwalker= parseInt($("select#walker option:selected").val()); 

       $('#walker'+numwalker).css('display','block'); 

      })  
+3

這個問題似乎是脫離主題,因爲它可以用一個字母來回答。 – lifetimes

+0

我已經使用「walker1」而不是「walker-1」,所以現在使用show和hide方法完成 – user2477139

回答

3

你可以這樣做:

$('#walker'+numwalker).show().siblings().hide(); 

See udpated DEMO

1

給所有#walker一個通用類,並隱藏所有的人,之前告訴你所選的一個。

<select id="walker" name="walker"> 
<option value="">Select Walker</option> 
<option value="1">walker1</option><option value="2">walker2</option><option value="3">walker3</option></select> 

<div id="form_div"> 
<div class="walkers" id="walker1" style="display:none;"></div> 
<div class="walkers" id="walker2" style="display:none;"></div> 
<div class="walkers" id="walker3" style="display:none;"></div> 
</div> 

$("#walker").change(function(){ 
       var numwalker= parseInt($("select#walker option:selected").val()); 
       $('.walkers').hide(); // <-- Hide all of them 
       $('#walker'+numwalker).show() // You can use .show() instead of altering the css. 

      }) 

而且,解決它的也許更優雅的方式,將是利用"Starts With Selector"而沒有給他們一個共同的類;因此:

$('div[id^="walker"]').hide(); 
0

一種方法是隱藏所有#form_div的孩子();

$("#form_div").children().hide(); 
$('#walker-'+numwalker).show(); 

您還錯過了選擇器ID中的-;

查看jsFiddle的演示。

相關問題