2011-12-15 21 views
6

Bir bağlantı elemanının yalnızca içinde metin olduğu ve başka bir etiket (img, b) veya başka bir şey olmadığı jquery ile kontrol etmem gerekiyor. jquery - sadece metin içeren ve başka bir html etiketi olmayan öğe bul

<a href="">TV</a> 

bulundu, ancak olmalı:

<a href=""><img /></a> 

ya:

<a href=""><span>TV</span></a> 

veya başka bir HTML etiketi, bulunan olmamalıdır.

Bunu nasıl yaparım?

Şimdiden teşekkürler.

cevap

11

Çocuk sahibi öğeleri kaldırmak için filter() işlevini kullanabiliriz (children() yöntemini kullanarak işaretlenmiş).

var emptyAs = $('a').filter(function() { 
    return $(this).children().length == 0; 
}); 

Ayrıca :has() selector ile kombine :not() selector kullanabilirsiniz;

var moreEmptyAs = $('a:not(:has(*))'); 

Aşağıdakilerin her ikisini de aşağıdaki JSFiddle'de görebilirsiniz; http://jsfiddle.net/JD67U/

+0

Çok teşekkür ederim! – Ovi

-2

.text()'u deneyebilirsiniz, bu yalnızca metinden kaçar ve her HTML Kodunu ortadan kaldırır.

var pureText=$('a').text(); 
+1

Asker filtrelemek istemiyor; kontrol etmek istiyor. –

+0

Herhangi bir kod satırında .filter bahsetti mi? –

İlgili konular