Re: [jQuery] fundamentals: .index(obj) or better solution

2006-10-18 Thread Michael Crowl

John -

Thank you, that worked!  Part of what confused me was that index() is 
defined as having an Obj as the argument, but not what kind - my 
attempts at using an expression as an argument were failing, so I was 
running out of ideas.  I wasn't following context properly.

Have enjoyed working with jQuery lately, nice update.

-- mike


John Resig wrote:
> .index() doesn't do what you think it does. It works like this:
>
> // Find the position of the P that an ID of someP /within/ the list of
> p elements.
> $("p").index( $("#someP")[0] )
>
> So, in your code it would be something like this:
>
> // div i want to find
> id = 3;
>
> // get the element i want to move
> var curr_obj = $("[EMAIL PROTECTED]'id[]'[EMAIL 
> PROTECTED]'"+id+"']").parent()[0];
>
> // determine its current location within the set of list_items
> var old_pos = $("div.list_item").index(curr_obj);
>
> So two things to note: .get() returns an array of elements, not just a
> single element and  .index() works over a list of elements, not the
> children of an element. I hope this makes sense, it is something of
> confusing method. I plan on polishing it up some, as it was a late
> addition to 1.0.
>
> --John
>
> On 10/17/06, Michael Crowl <[EMAIL PROTECTED]> wrote:
>   
>> .index() is driving me nuts, and I'm trying to figure out if there's an
>> obvious solution to what I'm trying to do, or if I'm missing something
>> in the API.
>>
>> Let's say I have the following:
>>
>> 
>>
>> 
>> 
>> // interface
>> 
>>
>> 
>> 
>> // interface
>> 
>>
>> 
>> 
>> // interface
>> 
>>
>> 
>> 
>> // interface
>> 
>>
>> 
>>
>> How do I determine the current element position of a particular
>> list_item in that container, using jQuery?
>>
>> Using .index(), it seems like this should work:
>>
>> // div i want to find
>> id = 3;
>> // get the element i want to move
>> var curr_obj = $("[EMAIL PROTECTED]'id[]'[EMAIL 
>> PROTECTED]'"+id+"']").parent().get();
>> // determine its current location within the set of list_items
>> var old_pos = $("#list").index(curr_obj);
>>
>> ...or a number of other combinations I've tried, and none of them can
>> get anything but -1 from .index().
>>
>> What am I doing wrong here?
>> - Does .get() really return an element object?  (It seems to.)
>> - What kind of object is .index() looking for?
>> 
>
> ___
> jQuery mailing list
> discuss@jquery.com
> http://jquery.com/discuss/
>
>   


___
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/


Re: [jQuery] fundamentals: .index(obj) or better solution

2006-10-16 Thread John Resig
.index() doesn't do what you think it does. It works like this:

// Find the position of the P that an ID of someP /within/ the list of
p elements.
$("p").index( $("#someP")[0] )

So, in your code it would be something like this:

// div i want to find
id = 3;

// get the element i want to move
var curr_obj = $("[EMAIL PROTECTED]'id[]'[EMAIL 
PROTECTED]'"+id+"']").parent()[0];

// determine its current location within the set of list_items
var old_pos = $("div.list_item").index(curr_obj);

So two things to note: .get() returns an array of elements, not just a
single element and  .index() works over a list of elements, not the
children of an element. I hope this makes sense, it is something of
confusing method. I plan on polishing it up some, as it was a late
addition to 1.0.

--John

On 10/17/06, Michael Crowl <[EMAIL PROTECTED]> wrote:
>
> .index() is driving me nuts, and I'm trying to figure out if there's an
> obvious solution to what I'm trying to do, or if I'm missing something
> in the API.
>
> Let's say I have the following:
>
> 
>
> 
> 
> // interface
> 
>
> 
> 
> // interface
> 
>
> 
> 
> // interface
> 
>
> 
> 
> // interface
> 
>
> 
>
> How do I determine the current element position of a particular
> list_item in that container, using jQuery?
>
> Using .index(), it seems like this should work:
>
> // div i want to find
> id = 3;
> // get the element i want to move
> var curr_obj = $("[EMAIL PROTECTED]'id[]'[EMAIL 
> PROTECTED]'"+id+"']").parent().get();
> // determine its current location within the set of list_items
> var old_pos = $("#list").index(curr_obj);
>
> ...or a number of other combinations I've tried, and none of them can
> get anything but -1 from .index().
>
> What am I doing wrong here?
> - Does .get() really return an element object?  (It seems to.)
> - What kind of object is .index() looking for?

___
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/