如何根据jQuery中的所有内容选择元素?

Kev*_*Kev 3 javascript jquery

我有一系列的<div/>如下:

<div>.co.uk</div>  
<div>.com</div>  
<div>.gb.com</div>  
<div>.uk.com</div>  
<div>.net</div>
Run Code Online (Sandbox Code Playgroud)

如何选择只包含的div .co.uk,.com,.net.

如果我使用:

$('div:contains(".co.uk"), div:contains(".com"), div:contains(".net")`)
Run Code Online (Sandbox Code Playgroud)

这会导致选择.gb.com.uk.comdiv.

Guf*_*ffa 5

您可以使用该filter方法检查内容:

$('div').filter(function(){
  var t = $(this).text();
  return t == '.co.uk' || t == '.com' || t == '.net';
})
Run Code Online (Sandbox Code Playgroud)

您可能仍希望在选择器中清除尽可能多的元素,以减少过滤器函数必须检查的元素数量.即使contains伪类无法完全匹配,它仍可用于减少结果:

$('div:contains(".co.uk"), div:contains(".com"), div:contains(".net")`).filter(function(){
  var t = $(this).text();
  return t == '.co.uk' || t == '.com' || t == '.net';
})
Run Code Online (Sandbox Code Playgroud)