jQUERY:计算没有类

时间:2018-06-08 04:15:30

标签: javascript jquery html

我想获得具有类assigned-names但没有名为hidden的类的span标记的数量。以下是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类但没有类hidden的span标记数为 1

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

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

3 个答案:

答案 0 :(得分:2)

您只需使用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>

答案 1 :(得分:1)

您可以使用BufferedImage.not()方法从匹配元素集中删除元素。

.not('span.hidden')
console.log($('.assigned-values').find('span.assigned-names').not('span.hidden').length)

答案 2 :(得分:0)

首先,你的JQuery代码错过了'span.assigned-name'中的's'

我已经尝试了以下代码,但它可以正常工作

var element = $('.assigned-values').find('span.assigned-names').not('.hidden').length
console.log(element.length);

代码输出值为1