计数具有空属性的元素

Count elements with empty attribute

我需要遍历我的元素并计算其中有多少具有空 data-v 属性:

<div data-v="" style="height: 0px"></div>

我试过这个好像不行:

$(".myEm").each(function() {
    var cnt = $(this).find("div[data-v!='']").length;
});

我错过了什么?

您的选择器正在寻找具有空属性的元素。这是一个演示,展示了每种类型的一些,一个查询使用 "not" (!) 和一个不使用它的选择器,结果计数:

$(function() {
  $(".myEm").each(function() {
    var cnt = $(this).find("div[data-v!='']").length;
    console.log(cnt);
    var cnt2 = $(this).find("div[data-v='']").length;
    console.log(cnt2);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="myEm">
  <div data-v="" style="height: 0px "></div>
  <div data-v="" style="height: 0px "></div>
  <div data-v=" " style="height: 0px "></div>
  <div data-v=" " style="height: 0px "></div>
  <div data-v=" " style="height: 0px "></div>
</div>

因此您需要根据自己的需要修改代码或标记,以获得预期的结果。