jquery - 查找只包含文本而不包含任何其他html标记的元素

时间:2011-12-15 10:59:21

标签: jquery html tags contains children

我需要用jquery检查一个锚元素只有文本,而不是任何其他标签(img,b)或其他任何东西。

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

应该找到,但是:

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

或:

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

或任何其他HTML标记都不应该找到。

我该怎么做?

提前致谢。

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分:-2)

您可以尝试.text()这只会转义文本并删除所有HTML代码。

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