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 - 查找 div 的高度然后创建循环以覆盖 div