Saya akan merekomendasikan penggunaan class="imageN"demi HTML yang valid. Entah itu atau data-imageId="imageN"demi HTML5 yang valid. Dengan yang pertama, Anda dapat menggunakan pemilih kelas.
Andy E
Andy, alasan di balik ini adalah, div ini ditambahkan secara dinamis dari belakang kode dan memiliki ImageIds berbeda tetapi kelas yang sama '.
Pabuc
3
Anda dapat memiliki banyak kelas class="image imageN"jika itu membantu.
Val
Mengapa tidak memilih nama kelas lalu jika mereka sudah memiliki kelas yang sama?
Praxis Ashelin
Jawaban:
145
$('div[imageId="imageN"]').each(function() {
// `this` is the div
});
Untuk memeriksa keberadaan satu-satunya atribut, apa pun nilainya, Anda dapat menggunakan selektor ini sebagai gantinya: $('div[imageId]')
@ ThiefMaster - Jika nilai atribut tidak konstan, (yaitu akan bervariasi) lalu bagaimana menemukannya?
Pengembang
beberapa pertanyaan: 1- bagaimana dengan elemen lain ... 2- bagaimana dengan nilai lainnya ... Saya mungkin memiliki atribut data-food pada banyak elemen: div, img dan td, di mana masing-masing memiliki nilai yang berbeda.
dsdsdsdsd
@ParthoGanguly Anda menggunakan variabel dengan cara ini: $ ('div [imageId = "' + variableName + '"]')
Kama
1
Solusi ini tidak benar-benar menjawab judul halaman ini. Anda mencari elemen yang div. Solusi yang tepat adalah solusi yang agnostik dari elemen yang sebenarnya.
AndroidDev
166
Meskipun tidak secara tepat menjawab pertanyaan tersebut, saya sampai di sini ketika mencari cara untuk mendapatkan kumpulan elemen (nama tag yang berpotensi berbeda) yang hanya memiliki nama atribut tertentu (tanpa memfilter berdasarkan nilai atribut). Saya menemukan bahwa berikut ini bekerja dengan baik untuk saya:
$("*[attr-name]")
Harapan yang membantu seseorang yang kebetulan mendarat di halaman ini mencari hal yang sama dengan saya :).
Pembaruan: Tampaknya tanda bintang tidak diperlukan, yaitu berdasarkan beberapa tes dasar, berikut ini tampaknya setara dengan yang di atas (terima kasih kepada Matt untuk menunjukkan ini):
class="imageN"
demi HTML yang valid. Entah itu ataudata-imageId="imageN"
demi HTML5 yang valid. Dengan yang pertama, Anda dapat menggunakan pemilih kelas.class="image imageN"
jika itu membantu.Jawaban:
$('div[imageId="imageN"]').each(function() { // `this` is the div });
Untuk memeriksa keberadaan satu-satunya atribut, apa pun nilainya, Anda dapat menggunakan selektor ini sebagai gantinya:
$('div[imageId]')
sumber
Meskipun tidak secara tepat menjawab pertanyaan tersebut, saya sampai di sini ketika mencari cara untuk mendapatkan kumpulan elemen (nama tag yang berpotensi berbeda) yang hanya memiliki nama atribut tertentu (tanpa memfilter berdasarkan nilai atribut). Saya menemukan bahwa berikut ini bekerja dengan baik untuk saya:
$("*[attr-name]")
Harapan yang membantu seseorang yang kebetulan mendarat di halaman ini mencari hal yang sama dengan saya :).
Pembaruan: Tampaknya tanda bintang tidak diperlukan, yaitu berdasarkan beberapa tes dasar, berikut ini tampaknya setara dengan yang di atas (terima kasih kepada Matt untuk menunjukkan ini):
$("[attr-name]")
sumber
$("[attr-name]")
? (yaitu tidak*
)$("[data-toggle='modal']")
Ini tidak disebut tag; apa yang Anda cari disebut atribut html.
$('div[imageId="imageN"]').each(function(i,el){ $(el).html('changes'); //do what ever you wish to this object :) });
sumber
Anda dapat menggunakan nilai parsial atribut untuk mendeteksi elemen DOM menggunakan tanda (^). Misalnya Anda memiliki div seperti ini:
<div id="abc_1"></div> <div id="abc_2"></div> <div id="xyz_3"></div> <div id="xyz_4"></div>...
Anda dapat menggunakan kode:
var abc = $('div[id^=abc]')
Ini akan mengembalikan array DOM div yang memiliki id dimulai dengan
abc
:<div id="abc_1"></div> <div id="abc_2"></div>
Ini demonya: http://jsfiddle.net/mCuWS/
sumber
Gunakan penggabungan string. Coba ini:
$('div[imageId="'+imageN +'"]').each(function() { $(this); });
sumber