Apakah ada selector
yang bisa saya query untuk elemen dengan ID yang diakhiri dengan string yang diberikan?
Katakanlah saya memiliki elemen dengan id ctl00$ContentBody$txtTitle
. Bagaimana saya bisa mendapatkan ini dengan melewati saja txtTitle
?
jquery
jquery-selectors
Josh Stodola
sumber
sumber
ClientIDMode=static
dari ASP.Net 4.0 dan seterusnya dan singkirkan ini :)Jawaban:
Jika Anda tahu jenis elemennya maka: (mis: ganti 'elemen' dengan 'div')
Jika Anda tidak tahu jenis elemen:
Informasi lebih lanjut tersedia
Tampilkan cuplikan kode
sumber
document.getElementById("f:fTest:j_idt51:0:inpTest")
. Ini tidak$("[id$='inpTest']")
. Apakah ini karena titik dua tidak diperbolehkan dalam ID (tetapi JSF menambahkannya!)?Jawaban atas pertanyaannya adalah
$("[id$='txtTitle']")
, seperti yang dijawab Mark Hurd , tetapi bagi mereka yang, seperti saya, ingin menemukan semua elemen dengan id yang dimulai dengan string yang diberikan (misalnya txtTitle), coba ini ( doc ):Jika Anda ingin memilih elemen id mana yang berisi string ( doc ) yang diberikan:
Jika Anda ingin memilih elemen yang bukan merupakan string ( doc ) yang diberikan:
(Ini juga cocok dengan elemen yang tidak memiliki atribut yang ditentukan)
Jika Anda ingin memilih elemen yang idnya berisi kata yang diberikan, dibatasi oleh spasi ( doc ):
Jika Anda ingin memilih elemen id mana yang sama dengan string yang diberikan atau dimulai dengan string yang diikuti oleh tanda hubung ( doc ):
sumber
Mencoba
sunting: terlambat 4 detik: P
sumber
Tidak perlu mengutip kutipan teks yang cocok dengan Anda
sumber
Lebih aman untuk menambahkan garis bawah atau $ pada istilah yang Anda cari sehingga cenderung tidak cocok dengan elemen lain yang diakhiri dengan ID yang sama:
(di mana elemen adalah tipe elemen yang Anda coba temukan - misalnya
div
,input
dll.(Catatan, Anda menyarankan ID Anda cenderung memiliki tanda $ di dalamnya, tapi saya pikir .NET 2 sekarang cenderung menggunakan garis bawah dalam ID sebagai gantinya, jadi contoh saya menggunakan garis bawah).
sumber
Contoh: untuk memilih semua
<a>
s dengan ID yang diakhiri dengan _edit:atau
sumber
Karena ini adalah ASP.NET, Anda cukup menggunakan tag ASP <% =%> untuk mencetak ClientID yang dihasilkan dari txtTitle:
Ini akan menghasilkan ...
... saat halaman diberikan.
Catatan: Di Visual Studio, Intellisense akan membentak Anda karena menempatkan tag ASP di JavaScript. Anda dapat mengabaikan ini karena hasilnya adalah JavaScript yang valid.
sumber
'ctl00$ContentBody$txtTitle'
, dia punya'txtTitle'
, dan Anda kehilangan yang memimpin#
untuk mencocokkan id. Tetapi OP telah menolak saran serupa (sejak dihapus): Ini tidak akan berfungsi kecuali saya meletakkan Javascript saya langsung di markup, yang merupakan mimpi buruk organisasi. Pemisahan perilaku sangat penting untuk proyek ini.Coba ini:
sumber
Untuk menemukan id iframe yang diakhiri dengan "iFrame" di dalam halaman yang berisi banyak iframe.
sumber