2011-12-15 11 views
6

アンカー要素にはテキストが含まれており、その他のタグ(img、b)やその他のものは含まれていないことをjqueryで確認する必要があります。jquery - 他のHTMLタグではないテキストのみを持つ要素を見つけよう。

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

が見つかりましたが、ことが必要です。

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

か:

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

またはその他のHTMLタグ、見つからないようにしてください。

どうすればよいですか?

ありがとうございます。

答えて

11

filter()関数を使用して、子を持つ要素を削除することができます(children()メソッドを使用してチェックします)。

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

また:has() selectorと組み合わせる:not() selectorを使用することができます。

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

これらの両方が次のJSFiddleで動作することがわかります。 http://jsfiddle.net/JD67U/

+0

ありがとうございました! – Ovi

-2

試してみてください.text()これはテキストのみをエスケープし、すべてのHTMLコードを削除します。

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

質問者はフィルタしたくありません。彼はチェックしたい –

+0

私はすべてのコード行に.filterについて言及していますか? –

関連する問題