私のリストのフィルタを作成しようとしていますが、私が望むように動作しています。ただし、最初のフィルタでのみ機能し、残りのフィルタでは機能しません。なぜ私は理解できません。jQuery Onclickフィルタのみ最初の項目のみの作業
私が達成しようとしているのは、「親」フィルタをクリックすると、選択された親と同じ「gid」属性を持たない「childList」リストアイテムが隠れるためです。
私のコードは次のとおりです。
HTML
<ul>
<li class="parent" gid="2">2</li>
<li class="parent" gid="3">3</li>
<li class="parent" gid="4">4</li>
</ul>
<ul>
<li class="childList" gid="2">2.1</li>
<li class="childList" gid="2">2.2</li>
<li class="childList" gid="2">2.3</li>
<li class="childList" gid="3">3.1</li>
<li class="childList" gid="3">3.2</li>
<li class="childList" gid="3">3.3</li>
<li class="childList" gid="4">4.1</li>
</ul>
CSS
li {
display: inline-block;
padding: 20px;
border: 1px solid black;
cursor: pointer;
}
.selected {
background-color: green;
}
Javascriptを
$(function() {
$('.parent').on('click', function() {
$(this).select().toggleClass('selected')
var gid = $(this).select().attr('gid')
if ($(this).select().attr('class') == 'parent')
$('.childList').show()
else {
console.log(gid)
if ($('.childList').attr('gid') == gid)
$('.childList').not('[gid="' + gid + '"]').hide()
}
})
})
あなたのご意見とご支援をいただければ幸いです。ありがとうございました。
。ありがとうございました! –