Re: [jQuery] fundamentals: .index(obj) or better solution
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: div name=list div class='list_item' input type='hidden' name='id[]' value='1' // interface /div div class='list_item' input type='hidden' name='id[]' value='2' // interface /div div class='list_item' input type='hidden' name='id[]' value='3' // interface /div div class='list_item' input type='hidden' name='id[]' value='4' // interface /div /div 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/
[jQuery] fundamentals: .index(obj) or better solution
.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: div name=list div class='list_item' input type='hidden' name='id[]' value='1' // interface /div div class='list_item' input type='hidden' name='id[]' value='2' // interface /div div class='list_item' input type='hidden' name='id[]' value='3' // interface /div div class='list_item' input type='hidden' name='id[]' value='4' // interface /div /div 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? -- | Michael Crowl | Web Developer | [EMAIL PROTECTED] ___ jQuery mailing list discuss@jquery.com http://jquery.com/discuss/
Re: [jQuery] fundamentals: .index(obj) or better solution
.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: div name=list div class='list_item' input type='hidden' name='id[]' value='1' // interface /div div class='list_item' input type='hidden' name='id[]' value='2' // interface /div div class='list_item' input type='hidden' name='id[]' value='3' // interface /div div class='list_item' input type='hidden' name='id[]' value='4' // interface /div /div 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/