在下面的示例中,我需要1
作为结果,因为只有一个title
的文本= lorem ipsum
我尝试使用contains
,但它会计算给定条件的所有变化。
var str = 'lorem ipsum';
let x = $(`.title:contains("${str}")`).length;
console.log(x);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='title'>lorem ipsum</div>
<div class='title'>lorem ipsum a</div>
<div class='title'>a lorem ipsum</div>
答案 0 :(得分:1)
您可以在选择器的输出上使用.filter
,将其限制为文本内容为div
的{{1}}。
lorem ipsum
var str = 'lorem ipsum';
let x = $(`.title:contains("${str}")`).filter(function() {
return $(this).text() == str;
}).length;
console.log(x);
请注意,由于您要测试两次文本值,因此可以只使用<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='title'>lorem ipsum</div>
<div class='title'>lorem ipsum a</div>
<div class='title'>a lorem ipsum</div>
;取决于您的HTML结构可能会更快。