Атрибут изменения jquery

97
15

У меня есть 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 во всех ссылках, которые у меня есть.


любая помощь?

спросил(а) 2010-04-16T18:47:00+04:00 10 лет, 10 месяцев назад
1
Решение
86

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

ответил(а) 2012-09-30T21:12:00+04:00 8 лет, 4 месяца назад
74

Изменить:


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

To:


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

ответил(а) 2010-04-16T18:51:00+04:00 10 лет, 10 месяцев назад
74

Try


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

})
})

На самом деле не запускал код... но похоже, что он должен сделать трюк.

ответил(а) 2010-04-16T18:50:00+04:00 10 лет, 10 месяцев назад
43

это проблема


$('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-31T03:17:00+03:00 3 года, 5 месяцев назад
43

Вот твердое решение 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-21T03:14:00+04:00 8 лет назад
43

Вы, вероятно, делаете "это" неправильно. (означает, что есть лучший способ сделать то, что вы пытаетесь).


но просто ответьте на вопрос:


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

ответил(а) 2010-04-16T18:52:00+04:00 10 лет, 10 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема