我有一个jQuery代码段,可以在新窗口中打开所有出站链接。
jQuery(document.links)
.filter(function() {
return this.hostname != window.location.hostname;
})
.attr('target', '_blank');
这很好用。
我试图让这对于出现在类.render
的元素内的任何链接都不起作用(可能是也可能不是直接的父级)。
我试过了:
jQuery(document.links)
.filter(function() {
return this.hostname != window.location.hostname;
})
.not( this.parents('.render'))
.attr('target', '_blank');
这不仅不起作用,控制台还说parents
不是函数。
答案 0 :(得分:2)
由于您已经在使用一个过滤器,因此无需使用not()
添加另一个过滤器。只需在filter()
jQuery('a').filter(function() {
var hostMatch = this.hostname != window.location.hostname,
isRenderItem = $(this).closest(".render").length;
return hostMatch && !isRenderItem;
}).attr('target', '_blank');
答案 1 :(得分:1)
var renderLinks = jQuery(".render a");
jQuery(a).filter(...).not(renderLinks).attr('target', function(){ return '_blank';});