我很难找到一个用另一个替换我的属性的解决方案。
我的HTML是:
<a href="#" external>link</a>
我想将“外部”替换为 target =“_ blank”
可行吗?
答案 0 :(得分:3)
你不需要jQuery。
使用选择器external
使用a[external]
属性迭代锚元素,然后删除external
属性并设置target
属性:
Array.prototype.forEach.call(document.querySelectorAll('a[external]'), function(a) {
a.removeAttribute('external');
a.setAttribute('target', '_blank');
});
对于它的价值,如果你想要jQuery替代品,请使用:
$('a[external]').each(function () {
$(this).removeAttr('external');
$(this).attr('target', '_blank');
});
答案 1 :(得分:1)
如果我错了,请纠正我,但这不符合OP所描述的,即使它做了他想要的。他说他想用target ='_ blank'替换外部。这将删除外部并添加target ='_ blank',无论该锚是否具有外部属性。在执行任何操作之前,下面将使用您的代码并检查外部属性是否存在。
Array.prototype.forEach.call(document.querySelectorAll('a'), function(a) {
if (a.getAttribute("external") != null) {
a.removeAttribute('external');
a.setAttribute('target', '_blank');
}
});