views:

16632

answers:

4

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);
+2  A: 

This should work:

$(this).parent("div").find(".add_answer").attr("alt", count);
Andreas Grech
+4  A: 

you can use the parent div as the scope:

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

Dreas Grech, that doesn't seem to work.

The reason i'm trying to access .add_answer by way of it's parent div is that there are multiple .add_answer images that need to be incremented individually

adam
+1  A: 

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).

Tobiasz Cudnik
I have this now $(this).parents("div:first").find('.add_answer').attr("alt", count); But i just realized that the div i'm trying to get is not the parent but the parent of the parent div. how do i get that one?
adam
Got it to work, thanks!
adam