jquery - 查找只有文本而没有任何其他 html 标记的元素

Posted

技术标签:

【中文标题】jquery - 查找只有文本而没有任何其他 html 标记的元素【英文标题】:jquery - find element that only has text and not any other html tag 【发布时间】:2012-01-21 02:00:16 【问题描述】:

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

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

应该可以找到,但是:

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

或:

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

或任何其他 html 标记,不应被找到。

我该怎么做?

提前致谢。

【问题讨论】:

【参考方案1】:

我们可以使用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/

【讨论】:

【参考方案2】:

您可以尝试.text(),它只转义文本并消除所有 HTML 代码。

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

【讨论】:

提问者不想过滤;他想检查一下。

以上是关于jquery - 查找只有文本而没有任何其他 html 标记的元素的主要内容,如果未能解决你的问题,请参考以下文章

JQuery文本框验证

JQuery - 查找 div 的高度然后创建循环以覆盖 div

如何使用 javascript 将网页作为纯文本获取,而没有任何 html? [复制]

使用jQuery查找页面上元素ID包含特定文本的所有元素

前端-jQuery

jquery内容筛选