jquery改变属性

发布于 2024-08-29 00:47:04 字数 381 浏览 6 评论 0原文

我有 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');


        })
    })

它有效,但它在我拥有的每个链接中设置相同的相对数据。

有什么帮助吗?

i have 4 links and i need to change the href attribute in a rel attribute.
i know i cannot do it so i'm trying to get the data from the href attribute, setting a new attribute (rel), inserting the data inside it and then removing the href attibute.

basically i'm doing this:

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


        })
    })

it works but it sets the same rel data in every link i have.

any help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

夜巴黎 2024-09-05 00:47:04
$('div#menu ul li a').each(function(){
    var lin = $(this).attr('href');
    $(this).attr('rel',lin);
    $(this).removeAttr('href');
});
$('div#menu ul li a').each(function(){
    var lin = $(this).attr('href');
    $(this).attr('rel',lin);
    $(this).removeAttr('href');
});
陈甜 2024-09-05 00:47:04

尝试

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


    })
})

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

Try

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


    })
})

Haven't actually ran the code...but that looks like it should do the trick.

胡大本事 2024-09-05 00:47:04

更改:

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

至:

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

Change:

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

To:

$(this).attr('rel',lin);
心作怪 2024-09-05 00:47:04

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

但只是回答你的问题:

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

You are probably doing "it" wrong. (meaning there is a better way to do what you are attempting).

but to just answer your question:

$('#menu ul li a').each(function(){
    var lin = $(this).attr('href');
    $(this).attr('rel',lin).removeAttr('href');
});
蓝眼泪 2024-09-05 00:47:04

这是一个可靠的 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;
    });
});

Here is a solid jquery solution:

$(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;
    });
});
停滞 2024-09-05 00:47:04

问题

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

this is the problem

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

this line apply changes to any element matches your selector, which in your case
will match the four links
--use this code instead

$('div#menu ul li a').each(function(){
        var lin = $(this).attr('href');
        $(this).attr('rel',lin);
        $(this).removeAttr('href');    
        })
    })
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文