替换标记内的属性

时间:2015-04-08 18:53:42

标签: javascript jquery

我很难找到一个用另一个替换我的属性的解决方案。

我的HTML是:

<a href="#" external>link</a>

我想将“外部”替换为 target =“_ blank”

可行吗?

2 个答案:

答案 0 :(得分:3)

你不需要jQuery。

使用选择器external使用a[external]属性迭代锚元素,然后删除external属性并设置target属性:

Example Here

Array.prototype.forEach.call(document.querySelectorAll('a[external]'), function(a) {
    a.removeAttribute('external');
    a.setAttribute('target', '_blank');
});

对于它的价值,如果你想要jQuery替代品,请使用:

Example Here

$('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');
    }
});