首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >筛选具有特定类作为祖先的元素。

问筛选具有特定类作为祖先的元素。
EN

Stack Overflow用户
提问于 2016-01-12 22:28:24
回答 2查看 38关注 0票数 0

我有一个jQuery片段,可以打开一个新窗口中的所有出站链接。

代码语言:javascript
复制
jQuery(document.links)
    .filter(function() {
        return this.hostname != window.location.hostname;
    })
    .attr('target', '_blank');

效果很好。

我试图使这种方法不适用于类.render元素中出现的任何链接(可能是也可能不是直接的父级)。

我试过:

代码语言:javascript
复制
jQuery(document.links)
    .filter(function() {
        return this.hostname != window.location.hostname;
    })
    .not( this.parents('.render'))
    .attr('target', '_blank');

这不仅不起作用,控制台还说parents不是一个函数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-12 22:32:44

代码语言:javascript
复制
var renderLinks = jQuery(".render a");
jQuery(a).filter(...).not(renderLinks).attr('target', function(){ return '_blank';});
票数 1
EN

Stack Overflow用户

发布于 2016-01-12 22:41:12

因为您已经在使用一个筛选器,所以不需要在not()中添加另一个过滤器。只需在filter()中添加附加条件即可

代码语言:javascript
复制
jQuery('a').filter(function() {
  var hostMatch = this.hostname != window.location.hostname,
    isRenderItem = $(this).closest(".render").length;
  return hostMatch && !isRenderItem;
}).attr('target', '_blank');
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34754966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档