jQuery为目标_blank的href添加类

时间:2014-06-26 02:26:53

标签: jquery regex

我想动态地为所有class="external-link"的href添加target="_blank",但不包括<img>标记周围的href。

e.g。

<a href="#" target="_blank" >test</a> // I'd like to add a class="external_link"

<a href="#" target="_blank" ><img src="#" /></a> // Nope, no class here thanks.

我假设某些正则表达式可以,但我无法弄清楚如何排除<img>标记。

感谢。

2 个答案:

答案 0 :(得分:3)

我认为您可以使用属性target="_blank"element selector)定位锚元素(attribute equals selector),而不是(.not())将图像作为其后代({{3 }})。

//dom ready handler
jQuery(function(){
    $('a[target="_blank"]').not(':has(img)').addClass('external_link')
})

答案 1 :(得分:0)

一种更通用的方法,可以应用于任何标记,使用jQuery函数$ obj.children()获取$ obj.children()。length,告诉你是否有任何标记。

$('a[target="_blank"]').addClass(function(){
   if($(this).children().length==0)
         return 'external_link';

})

在此处检查示例:http://jsfiddle.net/PWrU7/