我想动态地为所有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>
标记。
感谢。
答案 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/