Temukan semua elemen pada halaman yang ID elemennya berisi teks tertentu menggunakan jQuery

130

Saya mencoba menemukan semua elemen pada halaman yang ID elemennya berisi teks tertentu. Saya kemudian perlu menyaring elemen yang ditemukan berdasarkan apakah mereka disembunyikan atau tidak. Setiap bantuan sangat dihargai.

pengguna48408
sumber
kemungkinan duplikat ekspresi reguler pemilih JQuery
Robert MacLean

Jawaban:

201
$('*[id*=mytext]:visible').each(function() {
    $(this).doStuff();
});

Perhatikan tanda bintang '*' di awal pemilih cocok dengan semua elemen .

Lihat Selektor Berisi Atribut , serta selektor : terlihat dan : tersembunyi .

karim79
sumber
17
Mungkin perlu disebutkan bahwa ketika mencocokkan dengan suatu elemen idAnda tidak menggunakan tanda kutip, di mana saat mencocokkan dengan yang nameAnda lakukan. $('*[name*="myname"]:visible') Bukan yang paling intuitif dan telah menangkap saya sebelumnya.
ficuscr
Saya mengganti $ (ini) .doStuff (); dengan this.doStuff (); dan bekerja
Carlos López Marí
133

Jika Anda menemukan oleh Contains maka akan menjadi seperti ini

    $("input[id*='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

Jika Anda menemukan dengan Mulai Dengan maka itu akan menjadi seperti ini

    $("input[id^='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

Jika Anda menemukan oleh Berakhir dengan maka itu akan menjadi seperti ini

     $("input[id$='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

Jika Anda ingin memilih elemen yang bukan merupakan string yang diberikan

    $("input[id!='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

Jika Anda ingin memilih elemen yang namanya berisi kata yang diberikan, dibatasi oleh spasi

     $("input[name~='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

Jika Anda ingin memilih elemen id mana yang sama dengan string yang diberikan atau dimulai dengan string yang diikuti oleh tanda hubung

     $("input[id|='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });
dnxit
sumber
Halo, bagaimana saya bisa menggunakan pemilih untuk memilih elemen-elemen yang id milik array.
bpa.mdl
20

Ini memilih semua DIV dengan ID yang berisi 'foo' dan yang terlihat

$("div:visible[id*='foo']");
port-nol
sumber
Jika saya mencari elemen kotak teks daripada div, apakah itu hanya $ ("input: visible [id * = 'foo']"); ?
user48408
itu akan menjadi $ ("input [type = 'textbox'] [id * = 'foo']: terlihat")
karim79
1
@ port-zero - tanda kutip tunggal di sekitar 'foo' tidak diperlukan
karim79
jika Anda mencoba untuk mendapatkan nilai elemen (dalam rentang kasus saya) yang harus Anda dapatkan$(this)[0].innerText
Niklas
6

Terima kasih untuk kalian berdua. Ini bekerja dengan baik untuk saya.

$("input[type='text'][id*=" + strID + "]:visible").each(function() {
    this.value=strVal;
});
pengguna48408
sumber