2010-08-06 22 views

Respuesta

67

Esto debería hacer el truco:

$('#YourDivId').contents().filter(function(){ 
    return this.nodeType === 3; 
})​.remove();​ 
+0

parece una respuesta excelente, pero ¿puede explicar el trabajo? ¿Qué es el tipo de nodo === 3? – Suresh

+1

@eirenaios https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType –

3

usted puede hacerlo con una simple dom:

var div=$("div")[0]; 
if(div.childNodes.length) 
    for(var i=0;i<div.childNodes.length;i++) 
    { 
     if(div.childNodes[i].nodeType===3) 
      div.removeChild(div.childNodes[i]); 
    } 
+0

este 'div.removeChild (div);' no parece correcto! – jigfox

+0

Lo siento, actualizado ... – mck89

2

La forma más sencilla sería algo como esto:

$('#div').html($('<div>').append($('*', '#div')).html()); 
-6
$('#yourDiv').text(''); 

Esto eliminará el contenido de texto

+2

Este método elimina todo, incluidos los elementos secundarios. No es correcto. – Davis

-6
$('#yourDiv').text(''); 

Esto eliminará el contenido de texto

+2

No, elimina todo lo que hay dentro de div. – StinkyCat

+0

Llego tarde al show, pero ¿por qué Krish obtuvo -1 por esto y Gary obtuvo +1? – snowYetis

2

Bueno, esto probablemente no sea la mejor manera, pero me salvó el div en una variable y luego después de que elimina todo el contenido de la etiqueta i utilizado append:

$('.wpcf7 form p').each(function(i){ 
    var el = $(this).find('span'); 
    if(i==4) 
    el = $(this).find('input'); 
    $(this).empty(); 
    $(this).append(el); 
}); 
9

Suponiendo que la siguiente estructura HTML:

<div class="element-to-clean"> 
    Content to be filtered out. 
    <span class="element-to-leave-intact"> 
    Content to be left inthe element. 
    </span> 
</div> 

usted puede alcanzar su comportamiento deseado mediante el uso de el siguiente código de JavaScript + jQuery 2.1:

$('.element-to-clean').html($('.element-to-clean').children()); 
Cuestiones relacionadas