从链接中删除所有 target="_blank"

问题描述 投票:0回答:2

我正在摆弄 jQuery,遇到了一个我似乎无法解决的问题。我知道使用 jQuery 是可能的,但找不到合适的示例。我有一个页面,其中有几个常规链接,其中添加了属性/值

target="_blank"

使用 jQuery/JavaScript 从页面上的每个链接中删除该值的最佳方法是什么?

javascript jquery
2个回答
50
投票

这应该用 jQuery 来完成...

$('a[target="_blank"]').removeAttr('target');

使用现代浏览器...

Array.from(document.querySelectorAll('a[target="_blank"]'))
  .forEach(link => link.removeAttribute('target'));

使用较旧的浏览器,例如早期的 IE...

var links = document.links, i, length;

for (i = 0, length = links.length; i < length; i++) {
    links[i].target == '_blank' && links[i].removeAttribute('target');
}

0
投票

我知道聚会有点晚了!无论如何,这是另一个解决方案:

document.addEventListener('click', e => e.target.removeAttribute('target'));

此行不会立即从每个链接中删除

target
,但它仅在用户与链接交互时运行。这有两个好处:

  1. 避免了
    forEach
    造成的潜在资源浪费。
  2. 还影响页面加载后呈现的链接。
© www.soinside.com 2019 - 2024. All rights reserved.