4

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

基本上我正在这样做:

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


        })
    })

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

有什么帮助吗?

4

6 回答 6

4
$('div#menu ul li a').each(function(){
    var lin = $(this).attr('href');
    $(this).attr('rel',lin);
    $(this).removeAttr('href');
});
于 2012-09-30T18:12:38.580 回答
2

尝试

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


    })
})

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

于 2010-04-16T15:50:59.113 回答
2

改变:

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

至:

$(this).attr('rel',lin);
于 2010-04-16T15:51:56.497 回答
0

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

但只是回答你的问题:

$('#menu ul li a').each(function(){
    var lin = $(this).attr('href');
    $(this).attr('rel',lin).removeAttr('href');
});
于 2010-04-16T15:52:21.640 回答
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;
    });
});
于 2013-02-21T00:14:03.010 回答
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');    
        })
    })
于 2017-08-31T00:17:59.523 回答