2010-08-06 4 views

Répondre

67

Cela devrait faire l'affaire:

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

semble excellente réponse, mais pouvez-vous s'il vous plaît expliquer le contourner? Quel est le type de nœud === 3? – Suresh

+1

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

3

Vous pouvez le faire avec dom simple:

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

this 'div.removeChild (div);' ne semble pas correct! – jigfox

+0

Désolé, mise à jour ... – mck89

2

Le serait quelque chose comme moyen le plus simple ceci:

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

Cela va supprimer votre contenu textuel

+2

Cette méthode supprime tout, y compris les éléments enfants. Ce n'est pas correct. – Davis

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

Cela supprimera le contenu de votre texte

+2

Non, il supprime tout à l'intérieur de la div. – StinkyCat

+0

Je suis en retard au spectacle, mais pourquoi Krish a-t-il -1 pour cela et Gary a +1. – snowYetis

2

Eh bien, ce sera probablement pas la meilleure façon, mais je sauvé la div dans une variable puis après je supprimé tout le contenu dans la balise i utilisé 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

en supposant que la structure HTML suivant:

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

Vous pouvez obtenir votre comportement souhaité en utilisant le code JavaScript + jQuery 2.1 suivant:

$('.element-to-clean').html($('.element-to-clean').children()); 
Questions connexes