我想获得具有类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
答案 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