切换元素,显示其他元素

时间:2011-09-03 22:50:56

标签: jquery

每次我选择一个选项时,它会显示我想要的列表,但不会隐藏其他列表。我是否忘记了切换功能?

$("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>

1 个答案:

答案 0 :(得分:3)

如果没有看到您的HTML,我建议使用siblings()。如果这不起作用,请发布HTML以获得更准确的解决方案。

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

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

P.S。您应该使用$('#whatever') vs $('select#whatever')。与CSS不同,第一个在JQuery中更快,因为它使用ECMAScript的本地getElementById()函数,而后者需要使用sizzle。由于每个DOM节点都应该具有唯一的ID,因此不需要标记名称前缀。