使用Javascript用data-href属性替换href属性

时间:2014-10-19 11:25:45

标签: javascript jquery html google-chrome tampermonkey

如何为页面中的每个“a”标记执行此操作。我的目标是使用此搜索结果来访问Google搜索结果而无需谷歌重定向(在href属性中使用),因为实际链接存储在data-href属性中。所以使用Tampermonkey和以下脚本不起作用,我不知道为什么:

$('body').append('<input type="button" value="Fix Href Attributes" id="GG">');
$("#GG").css("position", "fixed").css("top", 18).css("left", 770);   

$('a').each(function(){
                var $currentA = $(this);
                var dataHref = $currentA.attr('data-href');
                $currentA.attr('href',dataHref);
            });

我该怎么做?

1 个答案:

答案 0 :(得分:0)

更新元素的代码是正确的,你只是太快解雇它。根据点击的按钮触发它:

$('body').append('<input type="button" value="Fix Href Attributes" id="GG">');
$("#GG").css("position", "fixed").css("top", 18).css("left", 770).on("click", function() {
    $('a').each(function() {
        var $currentA = $(this);
        var dataHref = $currentA.attr('data-href');
        $currentA.attr('href', dataHref);
    });
});

当然,没有理由你需要给它一个ID并在追加它后查找它:

$('<input type="button" value="Fix Href Attributes">')
    .css({
        position: "fixed",
        top: 18,
        left: 770
    })
    .on("click", function() {
        $('a').each(function() {
            var $currentA = $(this);
            var dataHref = $currentA.attr('data-href');
            $currentA.attr('href', dataHref);
        });
    })
    .appendTo(document.body);