鉴于下面的 HTML,我正在尝试使用 jQuery 来匹配所有 列表项 具有类“foo”的跨度,并且该跨度应包含文本“相关”。
<ul>
<li>Some text <span class="foo">relevant</span></li>
<li>Some more text <span class="foo">not</span> <span class="bar">relevant</span></li>
<li>Even more <span class="foo">not so either</span></li>
<li>Blablabla <span class="foo">relevant</span> <span class="bar">blabla</span></li>
<li>No foo here <span class="bar">relevant</span></li>
</ul>
请注意,还有一些带有“bar”类的跨度,并且还有文本“相关”,不应包括在内。
我对选择器的尝试:
ul li:has(.foo:contains('relevant"))
这不起作用。下一个例子选择了一些东西,但没有考虑到列表中有多个跨度:
ul li:has(span:contains('relevant"))
Here is a live example that you can play with 。在工作版本中,只应选择该列表的第一个和第四个元素。
最佳答案
看一下这个:
$(document).ready(function(){
$('span.foo:contains(relevant)').parents('li').each(function() {
alert($(this).text());
});
});
关于jQuery :has(. 东西 :contains()) unsupported?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1372772/