Saya punya beberapa elemen pada halaman HTML yang memiliki kelas yang sama - tetapi mereka memiliki tipe elemen yang berbeda. Saya ingin mengetahui nama tag elemen saat saya mengulanginya - tetapi .attr tidak mengambil "tag" atau "tagname".
Inilah yang saya maksud. Pertimbangkan elemen-elemen ini di halaman:
<h1 class="rnd">First</h1>
<h2 id="foo" class="rnd">Second</h2>
<h3 class="rnd">Third</h3>
<h4 id="bar" class="rnd">Fourth</h4>
Sekarang saya ingin menjalankan sesuatu seperti ini untuk memastikan bahwa semua elemen saya memiliki id jika belum ditentukan:
$(function() {
$(".rnd").each(function(i) {
var id = $(this).attr("id");
if (id === undefined || id.length === 0) {
// this is the line that's giving me problems.
// .attr("tag") returns undefined
$(this).attr("id", "rnd" + $(this).attr("tag") + "_" + i.toString());
}
});
});
Hasil yang saya inginkan adalah bahwa elemen H2 dan H4 kemudian akan memiliki id
rndh2_1
rndh4_3
masing-masing.
Adakah ide tentang bagaimana saya dapat menemukan nama tag dari elemen yang diwakili oleh "ini"?
javascript
jquery
BigPigVT
sumber
sumber
Jawaban:
seharusnya
sumber
Anda bisa mencoba ini:
Lihat dokumen lebih lanjut tentang is ().
sumber
nodeName
mengembalikan string yang, tergantung browser, berada di atas atau tidak.is('*')
selama bertahun-tahun. Ini mungkin tidak akan menjawab OP tetapi berhasil untuk saya, terima kasih, @middus!Karena saya telah mencapai pertanyaan ini sekali sebelumnya dan itu tidak membantu saya dalam kasus saya (saya tidak memiliki
this
, tetapi memiliki contoh pemilih jQuery). Memanggilget()
akan memberi Anda elemen HTML, yang dengannya Anda bisa mendapatkannodeName
seperti yang disebutkan di atas.atau
sumber
Anda juga bisa menggunakan
$(this).prop('tagName');
jika Anda menggunakan jQuery 1.6 atau lebih tinggi.sumber
Iya. Anda bisa menggunakan kode di bawah ini:
sumber
Saya pikir Anda tidak dapat menggunakan
nodeName
di jQuery karena nodeName adalah properti DOM dan jQuery itu sendiri tidak memilikinodeName
fungsi atau properti. Namun berdasarkan responden yang pertama kali menyinggungnodeName
hal tersebut, berikut cara saya menyelesaikan masalah tersebut:CATATAN: di
this
sini adalah objek jQuery.sumber
Karena ini adalah pertanyaan yang Anda tanyakan di google menggunakan jquery tagname first child sebagai kueri, saya akan memposting contoh lain:
Hasil jquery adalah tagname (huruf besar): P
sumber
Anda bisa mendapatkan nama tag elemen html di seluruh halaman.
Anda bisa menggunakan:
sumber
catatan: ganti ini dengan selektor Anda (h1, h3 atau ...)
sumber
Saya baru saja menulisnya untuk masalah lain dan berpikir ini dapat membantu Anda berdua juga.
Pemakaian:
onclick="_DOM_Trackr(this);"
Parameter:
Kode sumber:
sumber
html > body > div#coreApp > div#productpage > div#productpage-wrapper > div > div > div > div > div#pthumb12 > form#thumb_uploader_src > input
$('*').each(function(_i,_e){$(_e).attr('title',_DOM_Trackr(_e,true));});
Cara terbaik untuk memperbaiki masalah Anda, adalah menggantinya
$(this).attr("tag")
denganthis.nodeName.toLowerCase()
atauthis.tagName.toLowerCase()
.Keduanya menghasilkan hasil yang sama persis!
sumber
Pertimbangkan metode FILTER cepat :
kembali:
begitu:
sumber
Cukup lakukan:
sumber