我正在摆弄 jQuery,遇到了一个我似乎无法解决的问题。我知道使用 jQuery 是可能的,但找不到合适的示例。我有一个页面,其中有几个常规链接,其中添加了属性/值
target="_blank"
。
使用 jQuery/JavaScript 从页面上的每个链接中删除该值的最佳方法是什么?
这应该用 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');
}
我知道聚会有点晚了!无论如何,这是另一个解决方案:
document.addEventListener('click', e => e.target.removeAttribute('target'));
此行不会立即从每个链接中删除
target
,但它仅在用户与链接交互时运行。这有两个好处:
forEach
造成的潜在资源浪费。