Utilisez jQuery pour supprimer une div sans enfants

Comment puis-je utiliser jQuery pour supprimer un div SPÉCIFIQUE qui n’a pas d’enfants (au moins aucun enfant qui n’est pas un espace) Par exemple

some content
some more content

Voulez-vous supprimer complètement le div avec id = “removeme”.

Pour supprimer l’élément dont l’ id égal à removeme :

 $("#removeme").remove(); 

Pour supprimer l’élément avec un id égal à removeme uniquement s’il est vide:

 $("#removeme:empty").remove(); 

Pour supprimer tous les

s vides:

 $("div:empty").remove(); 

EDIT: Si ce n’est pas vide, mais a des espaces:

 if($.sortingm($("#removeme").text()) == "") { $("#removeme").remove(); } 

J’y suis allé avec:

 $('#outer > div').filter(function (index) { return $(this).children().length < 1; }).remove(); 

Cela dit:

  • donnez-moi tous les enfants div de #outer
  • utiliser le filtre pour se débarrasser de ceux qui ont des nœuds enfants
  • enlever tout ce que nous avons encore sélectionné

Malheureusement, cela supprimera la div si elle contient du texte, ce qui n’est probablement pas ce que l’affiche originale aurait voulu. Le texte brut ne compte pas comme un enfant.

Vous pouvez aussi utiliser:

$ (‘div: empty’). remove ();

http://docs.jquery.com/Selectors/empty

Je pense que tu veux ça:

 $('div#outer div:empty').remove(); 

Cela supprimera tous les div vides à l’intérieur du div # node externe

Je ne pouvais pas trouver un sélecteur qui ignore les nœuds de texte. Il s’agit donc de l’extrait de code le plus rapide / le plus sale que j’ai pu créer.

 $("#header").each(function() { if($(this).children().length < 1) $(this).remove() }); 

Voici si vide avec les enfants alors vous pouvez pointer sur les enfants et ensuite supprimer un parent, cela ne regarde pas les espaces, il suffit de supprimer si vide

tellement comme; si li est vide, il supprime #removeme

 if (!$("#tabs ul li").length) $('#tabs').remove();