2011-12-15 34 views
6

我需要检查与jquery锚元素只有文本,而不是任何其他标记(img,b)或任何其他的东西。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; 
}); 

您也可以使用:not() selector:has() selector相结合;

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

你可以在下面的JSFiddle中看到这两个工作; http://jsfiddle.net/JD67U/

+0

非常感谢! – Ovi 2011-12-15 11:21:15

-2

您可以尝试.text()这只能逃避文本并消除每个HTML代码。

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

提问者不想过滤;他想检查。 – 2012-11-05 08:06:36

相关问题