атрибут изменения jquery - PullRequest
       29

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

4 голосов
/ 16 апреля 2010

У меня есть 4 ссылки, и мне нужно изменить атрибут href в атрибуте rel. я знаю, что не могу этого сделать, поэтому я пытаюсь получить данные из атрибута 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 для каждой ссылки, которая у меня есть.

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

Ответы [ 6 ]

3 голосов
/ 30 сентября 2012
$('div#menu ul li a').each(function(){
    var lin = $(this).attr('href');
    $(this).attr('rel',lin);
    $(this).removeAttr('href');
});
2 голосов
/ 16 апреля 2010

Изменение:

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

Кому:

$(this).attr('rel',lin);
2 голосов
/ 16 апреля 2010

Попробуйте

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


    })
})

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

0 голосов
/ 31 августа 2017

это проблема

$('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');    
        })
    })
0 голосов
/ 21 февраля 2013

Вот твердое решение 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;
    });
});
0 голосов
/ 16 апреля 2010

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

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

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