recorrer queryselectorall queryselector obtener elementos ejemplos div javascript element selectors-api

javascript - obtener - ¿Cómo eliminar los elementos que fueron recuperados usando querySelectorAll?



queryselector vs getelementbyid (2)

Su parece algo que tendría una respuesta rápida, pero no puedo encontrar una. Tal vez estoy buscando los términos equivocados? No hay bibliotecas, por favor, aunque no necesito alternativas de navegador cruzado, estoy apuntando a las últimas versiones de este proyecto.

Estoy recibiendo algunos elementos:

element = document.querySelectorAll(".someselector");

YEY!

¿Cómo elimino estos elementos? ¿Qué me estoy perdiendo? ¿Tengo que recorrerlos y hacer element.parentNode.removeChild(element); cosa, o hay una función simple que me falta?


Dado que NodeList ya es compatible con forEach , solo puede utilizar

document.querySelectorAll(".someselector").forEach(e => e.parentNode.removeChild(e));

<div> <span class="someselector">1</span> <span class="someselector">2</span> Should be empty </div>

Consulte NodeList.prototype.forEach() . Solo tenga en cuenta que Internet Explorer no es compatible.

Edición : soporte de Internet Explorer. Si también desea que el código anterior funcione en IE, simplemente agregue este fragmento de código en cualquier lugar antes de su JS:

if (!NodeList.prototype.forEach && Array.prototype.forEach) { NodeList.prototype.forEach = Array.prototype.forEach; }

NodeList en IE de repente también soportará forEach .


Sí, casi tienes razón. .querySelectorAll devuelve una NodeList congelada . Necesitas iterarlo y hacer cosas.

Array.prototype.forEach.call( element, function( node ) { node.parentNode.removeChild( node ); });

Incluso si solo obtuvieras un resultado, necesitarías acceder a él a través del índice, como

elements[0].parentNode.removeChild(elements[0]);

Si solo desea consultar un elemento, use .querySelector en .querySelector lugar. Ahí solo obtiene la referencia de nodo sin la necesidad de acceder con un índice.