jQuery:has(.something:contains())不受支持?

Veg*_*sen 7 jquery jquery-selectors

鉴于下面的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>
Run Code Online (Sandbox Code Playgroud)

请注意,还有一些带有"bar"类的跨度,并且还有"相关"的文本,不应包括在内.

我对选择器的尝试:

ul li:has(.foo:contains('relevant"))
Run Code Online (Sandbox Code Playgroud)

这不起作用.下一个示例选择了一些内容,但未考虑列表中有多个span:

ul li:has(span:contains('relevant"))
Run Code Online (Sandbox Code Playgroud)

这是一个可以玩的实例.在工作版本中,只应选择该列表的第一个和第四个元素.

kar*_*m79 6

看一下这个:

$(document).ready(function(){
    $('span.foo:contains(relevant)').parents('li').each(function() {
       alert($(this).text());
    });
});
Run Code Online (Sandbox Code Playgroud)