Reputation: 441
I'm trying to change the alt of the image, I'm clicking by
selecting the image's class (add_answer
)
Note: .add_answer
shows up multiple times inside different containing 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);
});
});
This line doesn't seem to be working, how do I select this add_answer
class by way of it's parent div
$(this).parents("div:first").$('.add_answer').attr("alt", count);
Anyone else have an idea?
I'm trying having trouble decreasing the alt
value on the .add_answer
image when .destroy_answer
is clicked
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);
});
});
Problem line:
$('.add_answer',$(this).parent('div:first')).attr('alt',count);
Upvotes: 23
Views: 101341
Reputation: 9630
You code is almost correct. Required change is to use .find instead of .$ after .parents method. Use of .parent instead of .parents should be avoided, this way your code will be more unobtrusive (precisely - this way img can be non-direct child of the div).
$(this).parents('div:eq(0)').find('.add_answer')
You can manipulate :eq(0) to select eg third parent div using :eq(2).
Upvotes: 5
Reputation: 86805
you can use the parent div as the scope:
$('.add_answer',$(this).parent('div:first')).attr('alt',count);
Upvotes: 30
Reputation: 108040
This should work:
$(this).parent("div").find(".add_answer").attr("alt", count);
Upvotes: 15