2014-08-30 142 views
0

我有一个ID为menuItem的下拉列表。当选择一个选项时,我需要通过this.id显示相关项目列表。切换隐藏/显示在下拉菜单中选择事件

$("#menuItem").on("click", ".restaurant", function() { 
    $(".item").hide().filter("[data-source=" + this.id + "]").show(); 
    return false; 
}); 

无法显示此子列表。

+0

小提琴请... – 2014-08-30 07:02:56

+0

请显示相关的html。 – nnnnnn 2014-08-30 07:03:16

+0

欣赏它。功能是在底部... http://jsfiddle.net/2h4oLe3r/ – fresh5447 2014-08-30 07:05:22

回答

0

这是工作的代码,如果有人想知道:

  $("#restaurant").on("change", function (event) { 

       $("option:selected").each(function() { 

        $('.item').hide().filter("[data-source=" + this.id + "]").show(); 

       }); 
0

如果你有兴趣切换显示/隐藏在特定的元素或页面的一部分,那么你应该使用jQuery的“切换”功能。一个切换功能的简单例子是

$("button").click(function(){ 
    $("p").toggle(); 
}); 

这将简单地在页面中切换显示/隐藏“P”元素,您可以指定您的元素ID。

+1

OP不想切换某个类型的所有元素,他或她想先隐藏显示的元素,然后根据ID显示特定的元素。所以'.toggle()'真的不会有帮助。 – nnnnnn 2014-08-30 07:13:32

0

尝试$(this).attr('id')代替this.id ....这是正确的jQuery语法...

$("#menuItem").on("click", ".restaurant", function() { 
     $(".item").hide().filter("[data-source=" + $(this).attr('id') + "]").show(); 

     return false; 
    }); 
+1

'this.id'完全可以接受。没有必要做两个函数调用来检索相同的属性。 – nnnnnn 2014-08-30 07:18:44

+0

nnnnnn ...对两个评论都正确。仍在尝试解决问题。不知道我错过了什么。 – fresh5447 2014-08-30 07:21:05

相关问题