Necesito obtener todos los divs HTML que contienen muchos elementos HTML que tienen el texto interno = ' * ' y almacenarlos en una matriz. ¿Cómo puedo lograr eso usando mecanografiado? Si encuentro un lapso que contiene el texto interno = '*' , necesito colocar el div dentro de una matriz. Aquí, en mi código, hay 2 divs que contienen elementos span con innerText= ' * ' y necesito poner solo esos 2 divs dentro de una matriz. No necesito el tercer div en la matriz, porque no contiene ningún elemento HTML con texto interno = "*".
<div class="div"> <label> <span> Subject </span> <span> * </span> </label> </div> <br> <div class="div"> <label> Yes/No </label> <span> * </span> </div> <br> <div class="div"> <label> Email Id </label> <span> hello </span> </div>Actualmente no existe una API estándar para obtener elementos por su contenido, por lo que tendría que recorrerlos manualmente:
const myElements = Array.from(document.querySelectorAll('*')) .filter(() => this.children.length === 0 && this.textContent === ' * '); El '*' pasado aquí a querySelectorAll no está relacionado con el texto que está buscando, es solo el selector universal para seleccionar todos los elementos en la página. Como esto puede ser costoso, será mejor que use algún otro selector para limitar el alcance.