2014-08-30 134 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

相關問題