我有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数据。
任何帮助?
答案 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');
})
})