Estoy tratando de trabajar en una lógica que elimine elementos si existe dentro de un elemento div. Probé la lógica de reemplazar el elemento de la siguiente manera:
(div.html().replace(/^\s* /m, ''));Pero el problema con el escenario que estoy tratando de manejar es que me gustaría eliminar los   elementos que existen solo en el nivel secundario inmediato de un elemento, es decir, supongamos que tenemos el siguiente contenido html:
<div class="block"> <table> <tr> <td> 1 </td> </tr> <tr> <td> 2 </td> </tr> </table> </div>Considere el elemento div con bloque de nombre de clase como el elemento principal que estamos tomando. Aquí me gustaría ver solo los elementos secundarios de este elemento y no dentro de esos elementos secundarios, lo que significa que dentro del elemento no debe tomarse en la imagen y solo el al final (justo después de que termine la mesa) es lo que deseo eliminar. ¿Alguien podría pensar en una solución para resolver este problema?
Gracias
Pruebe cada nodo secundario del div y elimine el nodo donde el nodeName es '#text', y el resultado de verificar el nodeValue para el código de carácter es verdadero.
const div = document.querySelector('.block'); const regex = /(\u00a0).+/; function remove(div) { const nodes = div.childNodes; console.log(`Current nodes: ${nodes.length}`); nodes.forEach(node => { if (node.nodeName === '#text') { if (regex.test(node.nodeValue)) { div.removeChild(node); } } }); console.log(`Remaining nodes: ${nodes.length}`); } remove(div); <div class="block"> <table> <tr> <td> 1 </td> </tr> <tr> <td> 2 </td> </tr> </table> table </div>