鉴于下面的 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/

10-11 09:08