jQuery数据属性不是的任何元素

时间:2018-02-22 02:08:39

标签: javascript jquery

我的代码:

$(".tags li").click(function() {
  var catid = $(this).data("catid");
  $("[data-category!="+ catid + "]").hide();
  $("[data-category="+ catid + "]").show();
});

jQuery documentation表示最好使用.not()方法。但是,如何将.not()应用于具有data-category属性的任何元素

1 个答案:

答案 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>