鉴于下面的
HTML,我试图使用jQuery来匹配所有具有类“foo”的跨度的列表项,并且该跨度应该包含文本“related”.
<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"))
这不起作用.下一个示例选择了一些内容,但没有考虑到列表中有多个span:
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()); }); });