jquery更改属性

时间:2010-04-16 15:47:54

标签: jquery attributes href rel

我有4个链接,我需要更改rel属性中的href属性。 我知道我不能这样做所以我试图从href属性获取数据,设置一个新属性(rel),在其中插入数据然后删除href attibute。

基本上我这样做:

$('div#menu ul li a').each(function(){
        var lin = $(this).attr('href');
        $('div#menu ul li a').attr('rel',lin);
        $(this).removeAttr('href');


        })
    })

它可以工作,但它在我拥有的每个链接中设置相同的rel数据。

任何帮助?

6 个答案:

答案 0 :(得分:3)

$('div#menu ul li a').each(function(){
    var lin = $(this).attr('href');
    $(this).attr('rel',lin);
    $(this).removeAttr('href');
});

答案 1 :(得分:2)

尝试

$('div#menu ul li a').each(function(){
    var lin = $(this).attr('href');
    $(this).attr('rel',lin);
    $(this).removeAttr('href');


    })
})

实际上没有运行代码......但看起来它应该可以解决问题。

答案 2 :(得分:2)

变化:

$('div#menu ul li a').attr('rel',lin);

要:

$(this).attr('rel',lin);

答案 3 :(得分:0)

你可能做错了。 (意味着有更好的方法来做你正在尝试的事情。)

但要回答你的问题:

$('#menu ul li a').each(function(){
    var lin = $(this).attr('href');
    $(this).attr('rel',lin).removeAttr('href');
});

答案 4 :(得分:0)

这是一个坚实的jquery解决方案:

$(function() {
    $("a.selector").on("click", function() {
        var trigger = $(this.hash);
        trigger.removeAttr("id");
        window.location.hash = this.hash;
        trigger.attr("id", this.hash.replace("#",""));
        return false;
    });
});

答案 5 :(得分:0)

这是问题

$('div#menu ul li a').attr('rel',lin);

此行将更改应用于与您的选择器匹配的任何元素,在您的情况下 将匹配四个链接 - 请使用此代码

$('div#menu ul li a').each(function(){
        var lin = $(this).attr('href');
        $(this).attr('rel',lin);
        $(this).removeAttr('href');    
        })
    })