文字列で終了する<a>を選択します


669

jQueryを使用し<a>て、hrefが「ABC」で終わるすべてのリンクを選択することは可能ですか?

たとえば、このリンクを見つけたい場合 <a href="http://server/page.aspx?id=ABC">

回答:


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 '25 / 07/25

12
「ABC」では大文字と小文字が区別されることに注意してください。(ちょうどそれを理解するのにかなりの時間を費やしただけです...)
Louis Somers

hrefを取得する方法では、jqueryにABCが含まれていません
sf.dev

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

9
これは現在バニラjavascirptで動作します。あなたは単にdocument.querySelectorAll('a[href$="ABC"]')これを達成するために使うことができます。
k-nut 2015年

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

これは、「ABC」で終わるURLを持つ最初のリンクのタイトルを返します。


4
訂正:ABCで終わる
sparkyspider 2011

実際には、若干の違いがあります。これにより、指定されたhrefの最初のリンクが選択されます。これは、1つだけを変更する必要がある場合に役立ちます。
アレクウィスニア

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

2
その答えによって助けられるかもしれない将来の訪問者のために。
sscirrus 2013

@Sumitは、OPがABCたまたまIDを参照している場合にのみ、答えが正しいことに注意してください。
sscirrus 2013


2

この簡単なことを実行するためにjQueryのような大きなライブラリをインポートしたくない場合に備えて、querySelectorAll代わりに組み込みメソッドを使用できます。jQueryに使用されるほとんどすべてのセレクター文字列は、DOMメソッドでも機能します。

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

または、一致する要素が1つしかないことがわかっている場合:

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

検索する値が英数字の場合、通常は属性値を囲む引用符を省略できます。たとえば、ここでは、次のように使用することもできます

a[href$=ABC]

しかし、見積もりはより柔軟で、一般的にはより信頼性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.