我有一系列的html內容稱爲從數據庫中生成的過濾器。內容可以根據頁面動態變化。我給每個主div分配了css ID,並在循環時附加了一個數字。下面是一個示例代碼段:奇怪的jQuery行爲,同時顯示隱藏內容
<div><a id="filter-1">Brands</a></div>
<div id="filter-op-1">This is option 1</div>
<div><a id="filter-2">Size</a></div>
<div id="filter-op-2">This is option 2</div>
<div><a id="filter-3">Color</a></div>
<div id="filter-op-3">This is option 3</div>
的ID filter-1
和filter-op-1
等被循環的數量產生的,所以我們不知道如何在頁面上太多的內容將爲過濾器來生成。
我需要顯示/隱藏通過a
點擊過濾器-OP-X的內容,所以我寫了下面的jQuery代碼:
$(document).ready(function() {
$('div a').click(function() {
var self = $(this);
var cssId = self.attr('id');
var child = $('div#filter-op-'+cssId);
child.toggle();
});
});
現在的問題是,它不是以這種方式工作,但如果我在html中刪除了js代碼中的cssId
和-1
,-2
等,它開始工作,但它隱藏了所有內容,無論我點擊了哪個a
。
我不明白是什麼導致了這個問題。任何人都可以解釋這個問題,並給出一些很好的建議,如何處理它?
感謝
看到它在這裏工作。 https://jsfiddle.net/sandenay/uk1Lquuh/1/ –
'self.attr('id')'將會是'「filter-」'而不僅僅是'「」'部分;) –
Andreas
'控制檯。日誌(cssId);''會幫助你理解,對未來的錯誤也很好,可以測試變量 – turbopipp