Adakah cara untuk menguji jenis elemen di JavaScript?
Jawabannya mungkin atau mungkin tidak memerlukan pustaka prototipe, namun penataan berikut ini menggunakan pustaka.
function(event) {
var element = event.element();
// if the element is an anchor
...
// if the element is a td
...
}
javascript
prototypejs
Casey Watson
sumber
sumber
element.nodeName.match(/\bTBODY\b/i)
atauelement.nodeName.toLowerCase() == 'tbody'
dll.Mungkin Anda harus memeriksa nodetype juga:
Edit: Memperbaiki nilai nodeType
sumber
text/html
.)element.tagName.toLowerCase() === 'a'
element.nodeName.toLowerCase()
jika mungkin ituelement
tidak benar-benar menjadi elemen (misalnya, jika Anda belum melakukannodeType == 1
pemeriksaan yang tercantum di atas). TheNode
antarmuka memilikinodeName
. UntukElement
contoh, itu sama dengantagName
. Untuk jenis node lain, itu seperti"#text"
atau"#document"
. Saya pikir saya akan selalu menggunakannodeType
cek itu.node.tagName == 'DIV'
roenving benar TAPI Anda perlu mengubah tes menjadi:
karena nodeType 3 sebenarnya adalah node teks dan nodeType 1 adalah elemen HTML. Lihat http://www.w3schools.com/Dom/dom_nodetype.asp
sumber
Saya biasanya mendapatkannya dari nilai pengembalian toString (). Ia bekerja di elemen DOM yang diakses berbeda:
Kemudian bagian yang relevan:
Ia bekerja di Chrome, FF, Opera, Edge, IE9 + (di IE yang lebih lama ia mengembalikan "[Object Object]").
sumber
Meskipun jawaban sebelumnya berfungsi dengan sempurna, saya hanya akan menambahkan cara lain di mana elemen juga dapat diklasifikasikan menggunakan antarmuka yang telah mereka terapkan.
Lihat W3 Org untuk antarmuka yang tersedia
Pemeriksaan antarmuka dapat dilakukan dengan 2 cara sebagai
elem instanceof HTMLAnchorElement
atauelem.constructor.name == "HTMLAnchorElement"
, keduanya kembalitrue
sumber
Saya memiliki cara lain untuk menguji hal yang sama.
sumber