javascript - jQuery :contains full word

标签 javascript jquery regex css-selectors

我想通过子文本但完全匹配(两个名称)来选择父元素。

<div class="card">
   <div class="name">buggy</div>
   <div class="name">fruits</div>
</div>
<div class="card"> <!-- select only this one card -->
   <div class="name">bug</div>
   <div class="name">fruits</div>
</div>

$('.card:contains("bug"):contains("fruits")') - 在这种情况下不起作用,因为它从 buggy< 开始抓取两张卡 也包含 bug

$('.card').filter(function() {
    return $(this).find('.name').text() === "bug" && $(this).find('.name').text() === "fruits";
});

这也行不通。

如何实现子元素文本的全匹配?

最佳答案

使用.filter ,就像您正在做的那样,但构造每个元素的文本内容的数组,然后检查您要查找的每个单词是否是 include数组中的 d:

const $filteredCards = $('.card').filter(function() {
  const nameTexts = $(this)
    .children()
    .map(function() { return $(this).text() })
    .get();
  return nameTexts.includes('bug') && nameTexts.includes('fruits')
});

$filteredCards.css('background-color', 'yellow');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="card">
   <div class="name">buggy</div>
   <div class="name">fruits</div>
</div>
<div class="card"> <!-- select only this one card -->
   <div class="name">bug</div>
   <div class="name">fruits</div>
</div>

关于javascript - jQuery :contains full word,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55510199/

相关文章:

javascript - 如何使用 JayData 自定义 OData 服务器?

javascript - 用于显示 html 内容的 WebView 与 TextView

Javascript 与 IE 和 FF 不兼容(调用函数)

php - 如何允许用户添加另一个提交到 php 文件的输入行

带有点符号的变量的 JavaScript 连续 split()

javascript - 如何制作只有 3 个字符和 3 个数字的正则表达式?

javascript - GroupBy 使用 underscore.js 使用嵌套 JSON 对象

javascript - 如何在不使用表单的情况下从模板调用 django 方法?

javascript - Bootstrap警报关闭时间无法设置

regex - 如何在逗号分隔的列表中找到第 N 个条目并保留相应的行?