2010-06-01 5 views
3

J'essaie de supprimer les éléments et le contenu avant un lien dans un div lorsque l'utilisateur clique sur un bouton. Quelle est la meilleure façon de le faire?Supprimer les éléments et le contenu avant un élément

<div id="dialog" class="window"> 

     //will be inserted a <select> element and few text here 
     //but I want to clear them after the user click a button 

    <a href="#" class="close">Close it</a> // I want to keep this <a> link.  

    </div> 

Mon Jquery

$('.model').click(function(e) { 

    $("#dialog").empty(); //I can't use this because <a> will be deleted. Any better ideas?   

}); 

Merci pour la réponse ...

Répondre

5

envelopper juste tous ces éléments dans un div et les supprimer

$('#select-wrapper').remove(); 

ou faire un peu plus convivial

$('#select-wrapper').fadeOut(500, function() { $(this).remove(); }); 
+0

Merci pour la réponse ... Je savais que c'était facile ..... :( – FlyingCat

1

essayez de mettre le contenu que vous voulez supprimer dans son propre div. Ensuite, il sera simple jquery de cacher/supprimer la div sur l'événement de clic.

+0

Merci pour le conseil .. +1 – FlyingCat

1

Vous pouvez le faire:

$('.model').click(function(e) { 
    $("#dialog").children(":not(.close)").remove(); 
}); 

Cela supprime simplement tous les enfants à l'aide .remove() sans la classe close sur eux. Ou tout simplement cloner et ajouter à nouveau le lien en utilisant .clone(), comme ceci:

$('.model').click(function(e) { 
    $("#dialog a.close").clone(true).appendTo($("#dialog").empty()); 
}); 
+2

Vrai, mais cela ne supprimera pas les nœuds de texte (nodeType == 3). le chemin à suivre ici serait d'incorporer un wrapper selon la suggestion de @ alex – karim79

1

Voulez-vous vraiment garder ce lien a, ou voulez-vous simplement que div contient un lien qui ressemble après? Pourquoi ne pas simplement remplacer innerHTML par <a href="#" class="close">Close it</a>? Je comprends que si ce lien a changé d'une manière ou d'une autre au-delà de votre connaissance ou de votre contrôle, alors vous devrez le garder, mais à moins que ce ne soit le cas, un sosie fera l'affaire.

+0

Je dois garder ce lien pour que ma jquery fonctionne, merci pour le conseil. – FlyingCat

Questions connexes