jquery - лучший способ найти элемент с идентификатором, который соответствует атрибуту данных другого элемента - PullRequest
1 голос
/ 13 августа 2011

Я использую атрибут data html в списке ссылок меню, чтобы связать ссылки с разделами разделов контента, которые я хочу открыть при нажатии на ссылки. Так что, если у меня есть скрытый div с именем "# section1" - ссылка, которая откроет эту ссылку:

В настоящее время, чтобы найти div, соответствующий этой ссылке, я использую jquery .each (), чтобы перебрать все возможные элементы, но, похоже, должен быть лучший способ.

Кто-нибудь знает, как я могу упростить этот код и найти соответствующий элемент без необходимости запуска кода в цикле?

Вот мой код:

$('a.hidden_link').click(function(){
    section_ident = $(this).attr('data-ident');
    $('.hidden_section').each(function(index) {
        if ($(this).attr('data-ident') == section_ident){
            section_ref = $(this);
            section_ref.show();
        }
    });
});

Ответы [ 3 ]

2 голосов
/ 13 августа 2011

Это должно работать.

$('a.hidden_link').click(function(){
    $(".hidden_section[data-ident='"+$(this).attr('data-ident')+"']").show();
});

Jsfiddle, http://jsfiddle.net/playerace/H7jwb/

1 голос
/ 13 августа 2011
$('.hidden_section[data-ident="' + section_ident + '"]').show();

все вместе:

$('a.hidden_link').click(function(){
    var section_ident = $(this).attr('data-ident');
    $('.hidden_section[data-ident="' + section_ident + '"]').show();
});
0 голосов
/ 13 августа 2011

Это звучит как работа для jQuery.filter () !

$('a.hidden_link').click(function(){
    var section_ident = $(this).data('ident');
    $('.hidden_section').filter(function() {
        return this.attributes["data-ident"] == section_ident;
    }).show();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...