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

时间:2020-06-27 11:58:32

标签: javascript jquery

在下面的示例中,我需要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>

1 个答案:

答案 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结构可能会更快。