CSS选择器以某些内容结束而不包含某些内容

时间:2011-11-08 08:15:49

标签: jquery selector

我需要找到任何<a>标记,其href以'pdf'结尾,而包含'test'

像这样;

<a href="/abc/tes.pdf">link</a>

我所知道的只是第一个条件;

jQuery('a[href$=".pdf"]')

教我休息。

谢谢。

1 个答案:

答案 0 :(得分:4)

jQuery('a[href!="test"][href$=".pdf"]');

或更好:

jQuery('a[href$=".pdf"]').not('[href="test"]');

这就是原因:

  

因为[name!=“value”]是jQuery扩展而不是CSS的一部分   规范,使用[name!=“value”]的查询无法利用   本机DOM querySelectorAll()提供的性能提升   方法。要在现代浏览器中获得更好的性能,请使   $(“your-pure-css-selector”)。not('[name =“value”]')而不是。

编辑:这里的“更好”可能不正确,[value $ =“name”]也不是CSS2纯选择器,但jQuery文档没有提到。这里需要进行一些额外的研究......

编辑2:看起来我没想到这一点。你可能想要的是:

jQuery('a[href$=".pdf"]').not('a[href*="test"]');

其中包括:选择所有a元素,其中href属性以“.pdf”结尾,但选择a元素具有“test” “作为href属性中任意位置的子字符串。

http://api.jquery.com/category/selectors/