Adakah yang bisa memberi tahu saya jika mungkin untuk menemukan elemen berdasarkan kontennya daripada oleh id atau kelas ?
Saya mencoba menemukan elemen yang tidak memiliki kelas atau id berbeda. (Maka saya kemudian perlu menemukan orang tua elemen itu.)
Jawaban:
Anda dapat menggunakan
:contains
pemilih untuk mendapatkan elemen berdasarkan konten mereka.Demo di sini
sumber
.filter
.$('div').filter(function(){ return $(this).text().toLowerCase() === 'test';})
$('div:contains( "test" )').css('background-color', 'red');
Dalam dokumentasi jQuery dikatakan:
Oleh karena itu tidak cukup menggunakan
:contains()
pemilih , Anda juga perlu memeriksa apakah teks yang Anda cari adalah konten langsung dari elemen yang Anda targetkan, sesuatu seperti itu:sumber
<li>Hello <a href='#'>World</a>, How Are You.
. Di sini jikaHow
sedang dicari kondisinya akan gagal saya pikir.Kawan, saya tahu ini sudah tua tapi hei saya sudah solusi ini yang saya pikir bekerja lebih baik dari semua. Pertama dan terpenting mengatasi Sensitivitas Kasus yang jquery: berisi () dikirimkan bersama:
Berharap seseorang dalam waktu dekat merasa terbantu.
sumber
Jawaban Rocket tidak berhasil.
Saya cukup memodifikasi DEMO- nya di sini dan Anda dapat melihat root DOM dipilih.
tambahkan pemilih " : last " dalam kode untuk memperbaikinya.
sumber
Cara terbaik menurut saya.
sumber
Ya, gunakan
contains
pemilih jQuery .sumber
JQuery berikut memilih node div yang berisi teks tetapi tidak memiliki anak, yang merupakan node daun dari pohon DOM.
sumber