我需要检查与jquery锚元素只有文本,而不是任何其他标记(img,b)或任何其他的东西。jQuery的 - 找到只有文本,而不是任何其他HTML标记的元素
<a href="">TV</a>
应该找到,但:
<a href=""><img /></a>
或:
<a href=""><span>TV</span></a>
或任何其他HTML标记,应该不会被发现。
我怎么做到这一点?
在此先感谢。
我需要检查与jquery锚元素只有文本,而不是任何其他标记(img,b)或任何其他的东西。jQuery的 - 找到只有文本,而不是任何其他HTML标记的元素
<a href="">TV</a>
应该找到,但:
<a href=""><img /></a>
或:
<a href=""><span>TV</span></a>
或任何其他HTML标记,应该不会被发现。
我怎么做到这一点?
在此先感谢。
我们可以使用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/
您可以尝试.text()
这只能逃避文本并消除每个HTML代码。
var pureText=$('a').text();
提问者不想过滤;他想检查。 – 2012-11-05 08:06:36
非常感谢! – Ovi 2011-12-15 11:21:15