2011-09-03 179 views
2

每次我選擇一個選項時,它會顯示我想要的列表,但不會隱藏其他元素。我是否使用切換功能忘記了某些內容?要點擊一個元素,顯示其他元素

$("select#category").change(function() { 
    var category = $(this).val(); 
    $("select#"+category).toggle(); 
}); 

我的列表是那樣簡單(必須顯示無論是 「1」 選擇或 「2」,而不是二):

<form method="post"> 
    <select name="menu_destination" id="category"> 
     <option value="1" >1</option> 
     <option value="2">2</option> 
    </select> 

    <select name="menu_destination" id="1"> 
     <option value="a" >A</option> 
     <option value="b">B</option> 
    </select> 

    <select name="menu_destination" id="2"> 
     <option value="a" >A</option> 
     <option value="b">B</option> 
    </select> 

回答

3

沒有看到你的HTML,我建議使用siblings()。如果這不起作用,請發佈您的HTML以獲得更準確的解決方案。

$('#' + category).show().siblings().hide(); 

工作演示:http://jsfiddle.net/AlienWebguy/JgFmY/

附:您應該使用$('#whatever') vs $('select#whatever')。與CSS不同,JQuery中的第一個更快,因爲它使用ECMAScript的原生getElementById()函數,而後者需要使用sizzle。由於每個DOM節點都應該有一個唯一的ID,所以不需要標籤名稱前綴。

+0

我編輯了我的第一篇文章。順便說一下你對ECMAScript的建議是非常有用的,謝謝 – Anon

+0

+1,不知道兄弟姐妹()選擇器xD – Cristy

+0

@Anon簡單地將#1和#2包裝在一個像我的例子一樣的div中,它會工作。指出你不希望#category成爲#1和#2的兄弟,否則它將被隱藏:) – AlienWebguy