选择<a>,该href以某些字符串结尾


669

是否可以使用jQuery选择所有<a>以“ ABC”结尾的href链接?

例如,如果我想找到此链接 <a href="http://server/page.aspx?id=ABC">

Answers:


1550
   $('a[href$="ABC"]')...

选择器文档可在http://docs.jquery.com/Selectors中找到

对于属性:

= is exactly equal
!= is not equal
^= is starts with
$= is ends with
*= is contains
~= is contains word
|= is starts with prefix (i.e., |= "prefix" matches "prefix-...")

20
最近发生了一些变化。$('[href $ =-abc]')用于工作。现在它需要用引号$('[href $ =“-abc”]')我不知道何时更改。也许总是应该用引号引起来,而它恰好在之前起作用。
gman

12
请注意,“ ABC”区分大小写!(只是花了很多时间才能弄清楚那个……)
路易·萨默斯

如何获取href在jquery中不包含ABC
sf.dev 2014年

1
@ sf.dev$('a').filter(function() { return !this.href || !this.href.match(/ABC/); });
tvanfosson

9
现在可以使用香草javascirpt。您可以简单地使用它document.querySelectorAll('a[href$="ABC"]')来实现这一目标。
k-nut

21
$('a[href$="ABC"]:first').attr('title');

这将返回第一个链接的标题,该链接的URL以“ ABC”结尾。


4
更正:以ABC结尾
sparkyspider

实际上,两者之间存在细微差异。这将选择具有给定href的第一个链接,如果只需要更改一个链接,这将很有用。
alekwisnia 2012年

15
$("a[href*='id=ABC']").addClass('active_jquery_menu');

2
对于将来的访问者,可能会得到该答案的帮助。
sscirrus

@Sumit请注意,只有在OP ABC恰巧引用ID时,您的答案才是正确的。
sscirrus


2

万一您不想导入像jQuery这样的大库来完成这些琐碎的事情,则可以改用内置方法querySelectorAll。几乎所有用于jQuery的选择器字符串都可以使用DOM方法:

const anchors = document.querySelectorAll('a[href$="ABC"]');

或者,如果您知道只有一个匹配元素:

const anchor = document.querySelector('a[href$="ABC"]');

如果要搜索的值是字母数字,则通常可以省略属性值周围的引号,例如,在这里,您也可以使用

a[href$=ABC]

但是报价更灵活,通常更可靠

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.