Al crear un nuevo nodo HTML en jQuery usandojQuery acaba de crear div vacío no tiene fragmento de documento como padre
$('<some-node>some html code</some-node>');
no se convertirá en parte del DOM, hasta que lo conecte. Sin embargo, no significa que el nodo no tenga padre.
Si el nodo se creó unempty, por ejemplo .:
var myNewNode = $('<div>Hello</div>');
Puede comprobar el padre:
myNewNode[0].parentNode; // Who is the parent?
y ver a obtener
DocumentFragment
como resultado. DocumentFragment
es un objeto similar a document
, sin embargo, no forma parte del árbol DOM.
Lo extraño viene ahora. Cuando se crea un nodo vacío, como
var myNewEmptyNode = $('<div></div>');
y tratar de comprobar su contenido
myNewEmptyNode[0].parentNode; // Who is now the parent?
sorprendentemente usted consigue
null
No puedo entender este comportamiento y no encontró nada sobre él en jQuery documentación. Lo encontré al intentar depurar por qué javascriptMVC mxui modal estaba fallando en un div vacío.
He probado este comportamiento tanto en Chromium como en Opera, por lo que no parece ser un problema relacionado con el navegador.
¿Alguien tiene una explicación para esto?
¿Cuál es el propósito de 'parentNode' en ese código? – gdoron
Es el código en 'Mxui.Layout.Positionable' en javascriptMVC. Su propósito es mover elementos de un lugar a otro: 'this.element [0] .parentNode.removeChild (this.element [0]); document.body.appendChild (this.element [0]); ' –
@Samuel Hapak: El' appendChild' debería ser suficiente. Un elemento solo puede existir en un lugar de todos modos, por lo que se eliminará automáticamente en el lugar anterior. – pimvdb