提问者:小点点

如何选择具有特定文本的div


在下面的示例中,我需要1作为结果,因为只有一个title的文本=lorem ipsum
我尝试使用contains,但它会计算给定条件的所有变体。

null

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>

null


共1个答案

匿名用户

您可以在选择器的输出上使用.filter,将其限制为具有lorem ipsum的确切文本内容的div

null

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>