Ответ 1
вы можете использовать родительский div как область действия:
$('.add_answer',$(this).parent('div:first')).attr('alt',count);
Я пытаюсь изменить alt изображения, я нажимаю на
выбор класса изображения (add_answer
)
Примечание. .add_answer
отображается несколько раз внутри разных, содержащих div
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);
вы можете использовать родительский div как область действия:
$('.add_answer',$(this).parent('div:first')).attr('alt',count);
Это должно работать:
$(this).parent("div").find(".add_answer").attr("alt", count);
Вы правильно кодируете код. Требуемое изменение заключается в использовании .find вместо метода $after.parents. Следует избегать использования .parent вместо .parents, таким образом ваш код будет более ненавязчивым (точно - таким образом img может быть непрямым дочерним элементом div).
$(this).parents('div:eq(0)').find('.add_answer')
Вы можете манипулировать: eq (0), чтобы выбрать, например, третий родительский div, используя: eq (2).