@paradoks92

Как перебрать значения атрибутов на странице?

Приветствую, на страницах есть popover, срабатывает при hover.
Вот его JS код:
$('a.popup-ajax').popover({
    "html": true,
    "content": function(){
        return details_in_popup($(this).attr('data-poload'));
    }
});

function details_in_popup(link){
    $.ajax({
        url: link,
        dataType: 'json',
        success: function(response){
            var title = $("a.popup-ajax").attr("data-heroid");
            console.log(title);
            console.log(response[title]['id']);
            var name = response[title]['name'];
            var role = response[title]['role'];
            var img = response[title]['img'];
            var typeAttack = response[title]['typeAttack'];
                    $("a.popup-ajax").attr('data-content', '<div  class="hero-footnote"><img src="'+ img +'" alt=> <div class="hero-footnote__desc"><h3>'+ name +'</h3><p>'+ typeAttack+'</p><span>'+ role +'</span></div> </div>');


        }
    });
}

Здесь я беру значение атрибута: var title = $("a.popup-ajax").attr("data-heroid");
там хранится id, соответственно потом этот id подставляется в response[title] и выводится нужная мне инфа. Все хорошо, когда атрибут data-heroid один на странице, но если их несколько, то берется значение только первого.
Как переделать код, чтобы он брал значения каждого элемента на который я навожу?
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
@paradoks92 Автор вопроса
Вопрос закрыт, помогли уже. Может кому пригодится:
$('a.popup-ajax').popover({
    "html": true,
    "content": function(){
        var element = this; // !!!
        $.ajax({
            url: '/heroespage',
            dataType: 'json',
            success: function(response){
                var title = $(element).attr("data-heroid");  // !!!
                console.log(response[title]['id']);
                var name = response[title]['name'];
                var role = response[title]['role'];
                var img = response[title]['img'];
                var typeAttack = response[title]['typeAttack'];
                 /* !!! */$(element).attr('data-content', '<div  class="hero-footnote"><img src="'+ img +'" alt=> <div class="hero-footnote__desc"><h3>'+ name +'</h3><p>'+ typeAttack+'</p><span>'+ role +'</span></div> </div>');
            }
        })
    }
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
а что мешает передать весь объект?
details_in_popup($(this))
тогда вместо
var title = $("a.popup-ajax").attr("data-heroid");
можно
var title =link.attr("data-heroid");
или передавать 2 параметра в функцию, или передавать в нее объект с нужными данными
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы