【发布时间】:2012-03-27 08:07:30
【问题描述】:
如果匹配文本直接出现在选定元素内、该元素的任何后代中或它们的组合中,则 jQuery 选择器 :contains(text) 会选择一个元素。
当且仅当匹配文本直接出现在所选元素中时,我才想选择一个元素。我该怎么办?
例如,
<ul>
<li id="1">
<a><img src="la.gif"></a>
happy birthday
<ul><li>radom</li></ul>
</li>
<li id="2">
<a><img src="la.gif"></a>
sad
<ul><li>happy</li></ul>
</li>
</ul>
我想选择包含单词“happy”的li(如果只有它的后代包含单词“happy”,则不要选择li)。然后只应选择li#1。
以下内容不符合我的要求,因为它将同时选择 li#1 和 li#2:
$('li:contains("happy")');
【问题讨论】:
-
在
ul或ol中包含除li之外的任何内容都是无效的HTML。 -
抱歉,我给出了不好的 html 示例。修复。请查看更新的问题。谢谢。
-
@user1031868 你能告诉我们上述标记的预期输出是什么吗?
标签: jquery jquery-selectors contains