javascript - Jquery 多个选择器和多个包含

标签 javascript jquery

我可以用多个选择器搜索一个 div,每个选择器都包含在一个 jquery 字符串中吗?它必须是 AND 而不是 OR 搜索。

$('.row .people:contains("James") .tags:contains("episode")')

上面的选择应该返回下面的第一个 div。

<div class="row">
  <span class="people">James</span>
  <span class="tags">episode</span>
</div>
<div class="row">
  <span class="people">Bill</span>
  <span class="tags">episode</span>
</div>
<div class="row">
  <span class="people">James</span>
  <span class="tags">podcast</span>
</div>

最佳答案

您可以使用 jQuery 的 .has()检查一个元素是否包含某些后代。您可以将 :contains 嵌套在 .has() 语句中。

这将允许您检查 .row 是否包含带有特定文本的 span

然后您可以添加第二个 .has() 语句来检查它是否具有匹配文本的两个跨度。

请注意,在您的示例 HTML 中,按照您描述的方式进行检查会使事情变得过于复杂,因为您可以只执行 .row:first-child,但假设您确实需要以这种方式检查事情,这就是要走的路。

示例:

$('.row').has('.people:contains("James")').has('.tags:contains("episode")').addClass('highlighted');
.row.highlighted {
  background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">
  <span class="people">James</span>
  <span class="tags">episode</span>
</div>
<div class="row">
  <span class="people">Bill</span>
  <span class="tags">episode</span>
</div>
<div class="row">
  <span class="people">James</span>
  <span class="tags">podcast</span>
</div>

关于javascript - Jquery 多个选择器和多个包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45363061/

相关文章:

javascript - 使用递归的异步数据库调用

javascript - 如何在字符串中查找某些单词?

jquery - 当我单击表头中的 "All"复选框时,如何检查数据表中的所有复选框?

jquery - 在模态中播放视频

javascript - 我怎样才能从 d3js 中折叠的所有节点开始?

javascript - 将对象数组减少为键值对映射,保留值数组中的重复条目

javascript - 如何转换 HH :mm:ss string to a JavaScript Date object?

Java ajax 将值从 jsp 传递到 servlet

java - 如何用servlet + ajax制作动态内容

javascript - 当用户完成输入而不是按键时运行javascript函数?