¿Hay una manera de eliminar el texto que no está envuelto en cualquier etiqueta usando jQueryQuitar texto con jQuery
<p>This is some text</p>
This is "unwrapped" text //to be removed
<span>some more text</span>
Gracias por su ayuda
¿Hay una manera de eliminar el texto que no está envuelto en cualquier etiqueta usando jQueryQuitar texto con jQuery
<p>This is some text</p>
This is "unwrapped" text //to be removed
<span>some more text</span>
Gracias por su ayuda
Uso de la respuesta de this question:
$(elem)
.contents()
.filter(function() {
return this.nodeType == 3; //Node.TEXT_NODE
}).remove();
Sí, la función del constructor 'Node' no está obligada a ser visible a nivel de' ventana', y 'TEXT_NODE' normalmente se encontraría solo en el prototipo, no en el constructor. La forma 'correcta' sería 'this.nodeType == this.TEXT_NODE', sin embargo, incluso eso aún no funciona en IE, por lo que normalmente debe definir su propio' var TEXT_NODE = 3; '. – bobince
En primer lugar, se puede envolver con luces ficticias:
$("body").contents()
.filter(function(){ return this.nodeType != 1; })
.wrap("<span class='orphan'/>");
Ahora se pueden quitar fácilmente:
$('span.orphan').remove();
envolviéndolo en un elemento DOM que significaría jQuery puede encontrarlo:
por ejemplo:
var text = 'This is "unwrapped" text';
$("div:contains('" + text + "')").remove();
o simplemente:
$('p').next().remove();
fwiw ..
<div class="parent-element">
<p>This is some text</p>
This is "unwrapped" text //to be removed
<span>some more text</span>
</div>
a través de CSS:
.parent-element { font-size: 0px; }
.parent-element p { font-size: 12px; }
.parent-element span { font-size: 14px; }
El OP está pidiendo una solución en jQuery. Tu respuesta no está usando jQuery. – Pang
Es increíble, pero al mismo tiempo, el código siguiente no funciona
$("div.myClass:has(img)").contents().filter(":text").remove();
y el código del primer mensaje funciona
$("div.myClass:has(img)")
.contents()
.filter(function() {
return this.nodeType == 3; //Node.TEXT_NODE
}).remove();
¡Es importante recordar! jQuery 1.8.3.
¡Y antes que nada recuerdo que la manipulación de innerHTML funciona mucho más rápido que este enfoque!
Todo el texto está envuelto en alguna etiqueta, incluso si es
- ¿quieres decir con un elemento contenedor específico? – Greg+1 para
, pensando lo mismo. –