Pilih <a> yang href diakhiri dengan beberapa string

669

Apakah mungkin menggunakan jQuery untuk memilih semua <a>tautan yang href diakhiri dengan "ABC"?

Misalnya, jika saya ingin menemukan tautan ini <a href="http://server/page.aspx?id=ABC">

Aximili
sumber

Jawaban:

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

Dokumentasi pemilih dapat ditemukan di http://docs.jquery.com/Selector

Untuk atribut:

= 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-...")
tvanfosson
sumber
20
sesuatu berubah baru-baru ini. $ ('[href $ = - abc]') digunakan untuk bekerja. Sekarang ini membutuhkan tanda kutip $ ('[href $ = "- abc"]') Saya tidak tahu kapan itu berubah. Mungkin seharusnya selalu meminta penawaran dan kebetulan bekerja sebelumnya.
gman
12
Perhatikan bahwa "ABC" peka huruf besar-kecil! (Hanya menghabiskan beberapa waktu untuk mencari tahu ...)
Louis Somers
Cara mendapatkan href tidak mengandung ABC di jquery
sf.dev
1
@ sf.dev$('a').filter(function() { return !this.href || !this.href.match(/ABC/); });
tvanfosson
9
Ini berfungsi dengan javascirpt vanilla sekarang. Anda cukup menggunakan document.querySelectorAll('a[href$="ABC"]')untuk mencapai ini.
k-nut
21
$('a[href$="ABC"]:first').attr('title');

Ini akan mengembalikan judul tautan pertama yang memiliki URL yang diakhiri dengan "ABC".

Abu
sumber
4
Koreksi: Yang berakhir dengan ABC
sparkyspider
Sebenarnya ada sedikit perbedaan. Ini akan memilih tautan pertama dengan href yang diberikan, yang berguna jika Anda hanya perlu mengubah satu.
alekwisnia
15
$("a[href*='id=ABC']").addClass('active_jquery_menu');
Sumit
sumber
2
Untuk pengunjung masa depan yang mungkin terbantu dengan jawaban itu.
sscirrus
@Sumit perhatikan bahwa jawaban Anda hanya benar jika OP's ABCkebetulan merujuk ke ID.
sscirrus
6
$("a[href*=ABC]").addClass('selected');
Ganesh Anugu
sumber
2

Jika Anda tidak ingin mengimpor perpustakaan besar seperti jQuery untuk menyelesaikan sesuatu yang sepele ini, Anda dapat menggunakan metode querySelectorAllbawaan sebagai gantinya. Hampir semua string pemilih digunakan untuk jQuery bekerja dengan metode DOM juga:

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

Atau, jika Anda tahu bahwa hanya ada satu elemen yang cocok:

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

Anda biasanya dapat menghilangkan tanda kutip di sekitar nilai atribut jika nilai yang Anda cari adalah alfanumerik, misalnya, di sini, Anda juga bisa menggunakan

a[href$=ABC]

tetapi kutipan lebih fleksibel dan umumnya lebih dapat diandalkan .

Performa Tertentu
sumber