我的代码:
$(".tags li").click(function() {
var catid = $(this).data("catid");
$("[data-category!="+ catid + "]").hide();
$("[data-category="+ catid + "]").show();
});
jQuery documentation表示最好使用.not()
方法。但是,如何将.not()
应用于具有data-category
属性的任何元素?
答案 0 :(得分:1)
not
选择既没有指定属性,也没有指定属性但没有特定值的元素。
如果我理解正确,这将有助于你
$(".tags li").on("click", function() {
var catid = $(this).data("catid");
$("[data-category=" + catid + "]").show();
$("[data-category]").not("[data-category=" + catid + "]").hide();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="tags">
<li data-catid="1">Category 1</li>
<li data-catid="2"> Category 2</li>
</ul>
<div data-category="1">
Category 1 Item
</div>
<div data-category="1">
Category 1 Item
</div>
<div data-category="2">
Category 2 Item
</div>