一起使用 jQuery :has() 和 :contains() 选择器

Use jQuery :has() and :contains() selectors together

本文关键字:contains 选择器 has jQuery 一起      更新时间:2023-09-26

我有一个包含标签元素的列表项元素。我想使用:has()选择器选择列表项元素。在标签元素中,有我想与:contains()匹配的文本。是否可以用一行jQuery来做这两件事?如果不是,根据 li 元素的子标签元素的内容选择 li 元素的优雅方法是什么?

<li>
    <!-- I want to select this one -->
    <label>Label 1</label>
    <!-- more follows -->
</li>

您需要:

$("li:has(label):contains('Label 1')")

这将选择具有<label>并包含文本Label 1其内部任何位置的任何<li>

$("li:has(label:contains('Label 1'))")

这将选择具有<label>的任何<li>,并且该标签特别包含文本Label 1 。(如果"Label 1"在<li>的任何位置,则第一个选择器将匹配。

这应该可以解决问题:

$("li:has('label'):contains('Label 1')")