JQuery выбрать класс внутри родительского div - PullRequest
21 голосов
/ 27 декабря 2008

Я пытаюсь изменить альт изображения, нажимаю выбор класса изображения (add_answer)

Примечание: .add_answer появляется несколько раз внутри разных, содержащих div 's

jQuery(function(){   // Add Answer

    jQuery(".add_answer").click(function(){
        var count = $(this).attr("alt");
        count++;
        $('.a_type_'+count+'').show();
        $(this).parents("div:first").$('.add_answer').attr("alt", count);
    }); 

});

Эта строка не работает, как мне выбрать этот add_answer класс по его родительскому div

$(this).parents("div:first").$('.add_answer').attr("alt", count);

У кого-нибудь еще есть идея?

У меня проблемы с уменьшением значения alt на изображении .add_answer при нажатии .destroy_answer

jQuery(function(){   // Hide Answer

    jQuery(".destroy_answer").click(function(){
        $(this).parents("div:first").hide();
        var count = $('.add_answer').attr("alt");
        count--;
        $('.add_answer',$(this).parent('div:first')).attr('alt',count);


    }); 

});

Строка проблемы:

$('.add_answer',$(this).parent('div:first')).attr('alt',count);

Ответы [ 3 ]

24 голосов
/ 27 декабря 2008

Вы можете использовать родительский div в качестве области действия:

 $('.add_answer',$(this).parent('div:first')).attr('alt',count);
12 голосов
/ 27 декабря 2008

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

$(this).parent("div").find(".add_answer").attr("alt", count);
4 голосов
/ 27 декабря 2008

Ваш код почти правильный. Обязательным изменением является использование .find вместо. $ После .parents метода. Следует избегать использования .parent вместо .parents, таким образом, ваш код будет более ненавязчивым (именно - таким образом, img может быть не прямым потомком div)

$(this).parents('div:eq(0)').find('.add_answer')

Вы можете манипулировать: eq (0), чтобы выбрать, например, третий родительский div, используя: eq (2).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...