0

我搜索解决方案以查找不包含 html 标记的文本中的所有链接。

我有一个解决方案的开始,如下所示:

jQuery("a:not(a:has(img), a:has(span), ...)").addClass('myclass');

在这里找到:用于链接的 jQuery 选择器,内部没有图像

但我希望这样的事情:

jQuery("a:not(a:has(all-html-element))").addClass('myclass');

我不知道如果我的链接有一个孩子,这是一个更好的解决方案,像这样:

if(jQuery("a").children().size() == 0)
{
//do some stuff
}

你怎么看?

4

4 回答 4

3
$("a").filter(function(){
    return $(this).children().length == 0;
})
于 2013-09-12T19:38:39.053 回答
2

使用以下选择器:

$('a:not(:has(*))').addClass("myclass");

jsFiddle 演示

于 2013-09-12T19:38:25.623 回答
0

尝试这个..

$("a").filter(function() {
  return $(this).text() == $(this).html();
}).addClass('myclass');

text() 将删除所有 html 标签,如果这与 html() 的返回相同,则您将只有不包含 html 标签的元素。

于 2013-09-12T19:39:51.810 回答
0

只需检查当前的 a 元素是否有任何子元素:

$("a").filter(function(){
    return this.children.length === 0; // check if the element has any DOM elements
}).addClass("myclass");
于 2013-09-12T19:43:01.260 回答