¿Alguien puede explicarme en términos lo más simples posibles, cuál es la diferencia entre el DOM parentNode clásico y el recién introducido en Firefox 9 parentElement
javascript
firefox
dom
shabunc
fuente
fuente

Respuestas:
parentElementes nuevo en Firefox 9 y DOM4, pero ha estado presente en todos los demás navegadores importantes durante años.En la mayoría de los casos, es lo mismo que
parentNode. La única diferencia viene cuando un nodoparentNodeno es un elemento. Si es así,parentElementesnull.Como ejemplo:
Dado que el
<html>elemento (document.documentElement) no tiene un elemento primario que sea un elemento,parentElementesnull. (Hay otros casos, más improbables, en los queparentElementpodría habernull, pero probablemente nunca los encontrará).fuente
parentElementera una cosa propietaria de IE; Creo que otros navegadores en ese momento (por ejemplo, Netscape) admitíanparentNodepero noparentElement. (Obviamente, dado que he mencionado Netscape, estoy hablando de volver manera de IE5 y anteriores ...)documentfragment.firstChild.parentElement === nullcircleinside ag), en IE,parentElementno estará definido, yparentNodeserá lo que estás buscando. :(En Internet Explorer,
parentElementno está definido para elementos SVG, mientras queparentNodeestá definido.fuente
parentElementno se implementa paraNodees bien conocido ( developer.mozilla.org/en-US/docs/Web/API/Node/… ) pero paraSVGElement? Tampoco pude reproducir estodocument.createElement('svg').parentElementen IE 11.737.17763.0. ¿Se solucionó esto mientras tanto?Use
.parentElementy no puede equivocarse mientras no esté usando fragmentos de documentos.Si usa fragmentos de documentos, entonces necesita
.parentNode:También:
Aparentemente los enlaces de
<html>'s.parentNodeal documento . Esto se debe considerar un proceso de decisión ya que los documentos no son nodos, ya que los nodos están definidos para que los documentos puedan contenerlos y los documentos no pueden estar contenidos en ellos.fuente
Al igual que con nextSibling y nextElementSibling , solo recuerde que las propiedades con "elemento" en su nombre siempre devuelven
Elementonull. Las propiedades sin pueden devolver cualquier otro tipo de nodo.fuente
Hay una diferencia más, pero solo en Internet Explorer. Ocurre cuando mezclas HTML y SVG. si el padre es el 'otro' de esos dos, entonces .parentNode da el padre, mientras que .parentElement da indefinido.
fuente
undefinedno lo esnull.