In Javascript, quando imposto il outerHTML di un elemento nel DOM su un nuovo valore (per modificarlo in un elemento diverso, ad esempio), la sua proprietà 'parentNode' viene impostata su 'null'. Perché? Mi aspetto che rimanga a qualsiasi valore fosse prima che il cambiamento HTML esterno.In Javascript, perché l'impostazione outerHTML su un elemento imposta il suo parentNode su "null"?
Immagino che il DOM stia creando un nuovo oggetto analizzando la stringa 'outerHTML' e usandolo per sostituire l'oggetto originale. Se questo è il caso, c'è un metodo per recuperare quell'oggetto appena creato?
Passaggi per riprodurre (testato su Linux Chrome & Linux Firefox)
Aprire una finestra pulita nel browser,
Aprire la console dev (F12, probabilmente)
Dai un'occhiata alla pagina DOM (scheda Elemento in Chrome, Inspector in Firefox)
- Elimina tutti i bambini dell ' corpo', giusto per rendere le cose più pulita
Aprire la console e digitare:
obj1 = document.createElement('div')
obj1.id = '1'
document.body.appendChild(obj1);
obj1.parentNode
- dovrebbe scrivere il '' HTML corpo alla console.obj1.outerHTML = "<div id='2'></div>"
obj1.parentNode
- ora scrive 'null' alla console.
Correlati: http://stackoverflow.com/q/31550944/1461424 – Krumia