Атрибут изменения jquery
У меня есть 4 ссылки, и мне нужно изменить атрибут href в атрибуте rel.
Я знаю, что не могу этого сделать, поэтому я пытаюсь получить данные из атрибута 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 во всех ссылках, которые у меня есть.
любая помощь?
$('div#menu ul li a').each(function(){
var lin = $(this).attr('href');
$(this).attr('rel',lin);
$(this).removeAttr('href');
});
Изменить:
$('div#menu ul li a').attr('rel',lin);
To:
$(this).attr('rel',lin);
Try
$('div#menu ul li a').each(function(){
var lin = $(this).attr('href');
$(this).attr('rel',lin);
$(this).removeAttr('href');
})
})
На самом деле не запускал код... но похоже, что он должен сделать трюк.
это проблема
$('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');
})
})
Вот твердое решение 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;
});
});
Вы, вероятно, делаете "это" неправильно. (означает, что есть лучший способ сделать то, что вы пытаетесь).
но просто ответьте на вопрос:
$('#menu ul li a').each(function(){
var lin = $(this).attr('href');
$(this).attr('rel',lin).removeAttr('href');
});