Frage

<div>
  <p><a href="#">link</a> some text</p>
  <p><a href="#">link</a></p>
  <p><a href="#">link</a> some text</p>
  <p><a href="#">link</a></p>
</div>

Ich möchte die finden (und hinzufügen) die <p> Tags, die keinen Text direkt in sich selbst oder seinen Kindern enthalten.

War es hilfreich?

Lösung

Dies funktioniert gut, ich musste den Text aus einem Ihrer Absätze entleeren, um zu testen:

var $eles = $('p').filter(function() {
    return $(this).text().length == 0;
});
$eles.addClass("foo");

Andere Tipps

Ich nehme an, Sie haben einen Fehler in der Problembeschreibung, da das A -Tag immer Text im Beispiel enthält.

Soweit ich weiß, gibt es keinen Standard -Selektor, der prüfen kann, ob ein direkter Inhalt vorhanden ist, aber Sie könnten dies versuchen:

$('p').each(function(){
 var p = $(this).clone();
 p.children().remove();
 if(p.text().length){
   $(this).addClass('gotcha');
  }
});

Sollte funktionieren, wenn Sie nur den Absatzintereiten überprüfen möchten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top