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

时间:2013-09-09 00:29:08

标签: javascript jquery html css

我有一个包含label元素的列表项元素。我想用:has()选择器选择列表项元素。在标签元素内部,我想要与:contains()匹配的文字。是否可以通过一行jQuery来完成这两件事?如果没有,基于其子标签元素的内容选择li元素的优雅方法是什么?

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

2 个答案:

答案 0 :(得分:7)

你想要:

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

这将选择两个都有<li>的{​​{1}}并且其中包含文本<label>的任何Label 1

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

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

答案 1 :(得分:0)

这应该可以解决问题:

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