Hi John,

Actually that was a bad example sorry! What about something like this:

$('form div.options').each(){function( i ){
  $(this).children('[EMAIL PROTECTED]').each(function(){
    $(this).attr('name', 'option_num_' + i);
  });
});

How do you access i from within the inner loop? I'm guessing that the
execution of the inner each loop doesn't really occur until the outer
one has? I just can't seem to get "dynamic" values into each handlers
like that. I know that with Prototype, there is a function(){}.bind
feature, is that used on "each" also?

Thanks,
Matt

On Aug 23, 12:16 am, "John Resig" <[EMAIL PROTECTED]> wrote:
> Like so:
>
>  $('input').each(function(i){
>    $(this).attr('name', i);
>  });
>
> Nice and simple!
>
> --John
>
> On 8/23/07, goodieboy <[EMAIL PROTECTED]> wrote:
>
>
>
> > OK, I thought I knew jQuery pretty well. But this is completely
> > stumping me. What I want to do is iterate through a newly attached set
> > of input elements, and set their names based on a dynamic
> > (incrementing) number. But the only value that ever gets used is the
> > initial value of the variable. I've tried everything, attaching the
> > value to the dom object, and then in the loop trying to access it
> > (still the same original value), using a global variable, a function
> > to get the value, all return the original value that I set the
> > variable to.
>
> > What am I doing wrong? Here is an example:
>
> > for(i=0; i<10; i++){
> >   $('input').each(function(){
> >     $(this).attr('name', i);
> >   });
> > }
>
> > Here, all of the inputs get the value 9. How can I make then all get
> > the current incremented value of i?
>
> > Thank you for any tips!
> > Matt

Reply via email to