首页 > 解决方案 > jQUERY:计算没有类的元素

问题描述

我想获取具有类assigned-names但没有名为的类的跨度标签的数量hidden。以下是 HTML 代码:

<div class="assigned-values">
    <span class="assigned-names">
          <span class="name">Test 1</span>
    </span>
    <span class="assigned-names hidden">
          <span class="name">Test 2</span>
    </span>
    <span class="assigned-names hidden">
          <span class="name">Test 3</span>
    </span>
</div>

所以,对于上面的 HTML,有类assigned-names但没有类的 span 标签的数量hidden1

我尝试了以下代码,但它给我的长度为 2:

$('.assigned-values').find('span.assigned-names:not(:has(.hidden))').length

标签: javascriptjqueryhtml

解决方案


您可以使用函数简单地过滤掉不需要的元素not()

const elems = $(".assigned-values > .assigned-names").not(".hidden");
console.log(elems.length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="assigned-values">
  <span class="assigned-names">
          <span class="name">Test 1</span>
  </span>
  <span class="assigned-names hidden">
          <span class="name">Test 2</span>
  </span>
  <span class="assigned-names hidden">
          <span class="name">Test 3</span>
  </span>
</div>


推荐阅读