Adakah yang bisa menjelaskan saya sesederhana mungkin, apa perbedaan antara DOM parentNode klasik dan yang baru diperkenalkan di Firefox 9 parentElement
javascript
firefox
dom
shabunc
sumber
sumber
Jawaban:
parentElement
adalah baru untuk Firefox 9 dan DOM4, tetapi telah ada di semua browser utama lainnya sejak lama.Dalam kebanyakan kasus, ini sama dengan
parentNode
. Satu-satunya perbedaan terjadi ketika simpulparentNode
bukan elemen. Jika demikian,parentElement
adalahnull
.Sebagai contoh:
Karena
<html>
elemen (document.documentElement
) tidak memiliki orangtua yang merupakan elemen,parentElement
adalahnull
. (Ada beberapa kasus lain yang lebih tidakparentElement
mungkin terjadinull
, tetapi Anda mungkin tidak akan pernah menemukannya.)sumber
parentElement
adalah hal yang merupakan hak milik IE; Saya percaya browser lain pada saat itu (misalnya, Netscape) mendukungparentNode
tetapi tidakparentElement
. (Jelas, mengingat saya telah menyebutkan Netscape, saya sedang berbicara tentang jalan kembali ke IE5 dan sebelumnya ...)documentfragment.firstChild.parentElement === null
circle
di dalam ag
), di IE,parentElement
akan tidak terdefinisi, danparentNode
akan menjadi apa yang Anda cari. :(Di Internet Explorer,
parentElement
tidak ditentukan untuk elemen SVG, sedangkanparentNode
didefinisikan.sumber
parentElement
tidak diterapkan untukNode
diketahui ( developer.mozilla.org/en-US/docs/Web/API/Node/… ) tetapi untukSVGElement
? Saya juga tidak bisa mereproduksi ini dengandocument.createElement('svg').parentElement
IE 11.737.17763.0. Apakah ini mungkin sudah diperbaiki sementara itu?Gunakan
.parentElement
dan Anda tidak bisa salah asalkan Anda tidak menggunakan fragmen dokumen.Jika Anda menggunakan fragmen dokumen, maka Anda perlu
.parentNode
:Juga:
Ternyata
<html>
itu.parentNode
tautan ke Dokumen . Ini harus dianggap sebagai keputusan keputusan karena dokumen bukan node karena node didefinisikan dapat disimpan oleh dokumen dan dokumen tidak dapat dimuat oleh dokumen.sumber
Sama seperti dengan nextSibling dan nextElementSibling , ingatlah bahwa, properti dengan "elemen" dalam namanya selalu kembali
Element
ataunull
. Properti tanpa dapat mengembalikan jenis simpul lainnya.sumber
ada satu lagi perbedaan, tetapi hanya di internet explorer. Itu terjadi ketika Anda mencampur HTML dan SVG. jika orangtua adalah 'yang lain' dari keduanya, maka .parentNode memberikan induk, sementara .parentElement memberikan yang tidak terdefinisi.
sumber
undefined
tidaknull
.