Hola,
Tengo un código html como este
<div id="box"></div>luego tengo este observador, por lo que se ejecuta una función si se agrega un elemento con datos agregados.
new MutationObserver((mutations) => { for (let mutation of mutations) { if (mutation.type === 'childList' && mutation.addedNodes[0].dataset.added) { loadstuff(); } } }).observe(box, {childList: true});funciona, pero cuando elimino el elemento, aparece este error en la consola:
Error de tipo no detectado: mutación.addedNodes[0] no está definido
Violín aquí: https://jsfiddle.net/dc63r7bg/1/
¿Cómo puedo deshacerme de ese error?
Gracias.
Puede utilizar el operador de encadenamiento opcional :
var box = document.getElementById("box"); function addit() { box.insertAdjacentHTML('afterbegin', '<span id="elm" data-added="yes">element</span>'); } function removeit() { document.getElementById("elm").remove(); } new MutationObserver((mutations) => { for (let mutation of mutations) { if (mutation.type === 'childList' && mutation.addedNodes[0]?.dataset.added) { console.log('added'); } } }).observe(box, { childList: true }); <div id="box"></div> <button onclick="addit()">Add</button> <button onclick="removeit()">Remove</button>