index() returns -1 when the element is not found. It fails because the
object array passed contains elements that are not children of your
first object.

In your case you need to store a reference to the parent element and
pass only it's children to the index() function:

var kid = $('#container > .kid:eq(0)'); // to access an arbitrary
'kid'
$('.week',kid).index($('.week.selected',kid));

or

// to get the selected one
var kid = $('#container > .kid.selected');
$('.week',kid).index($('.week.selected',kid));

- ricardo

On Oct 21, 9:27 am, jimster <[EMAIL PROTECTED]> wrote:
> It seems like I've got somewhere - though I am still confused.
>
>   <div id="container">
>                         <div id="kid1" class="kid select">
>                                 <div id="k1w1" class="week"></div>
>                                 <div id="k1w2" class="week selected"></div>
>                                 <div id="k1w3" class="week"></div>
>                                 <div id="k1w4" class="week"></div>
>                         </div>
>
>                         <div id="kid2" class="kid">
>                                 <div id="k2w1" class="week"></div>
>                                 <div id="k2w2" class="week"></div>
>                                 <div id="k2w3" class="week"></div>
>                                 <div id="k2w4" class="week selected"></div>
>                         </div>
>
>                         <div id="kid3" class="kid">
>                                 <div id="k3w1" class="week selected"></div>
>                                 <div id="k3w2" class="week"></div>
>                                 <div id="k3w3" class="week"></div>
>                                 <div id="k3w4" class="week"></div>
>                         </div>
>
>                         <div id="kid4" class="kid">
>                                 <div id="k4w1" class="week"></div>
>                                 <div id="k4w2" class="week selected"></div>
>                                 <div id="k4w3" class="week"></div>
>                                 <div id="k4w4" class="week"></div>
>                         </div>
>                 </div>
>
> Now I have changed #kid1 to have a class "select" instead of
> "selected" and this code brings up the correct index for the div with
> class "selected" in the first group of weeks (was there some kind of
> conflict before because the parent had the class I was looking for?):
>
> var spoon = $("#container > div:eq(0) > div").index($(".selected"));
>
> If i change the :eq to (1) or (2) or (3) to theoretically grab hold of
> the other 3 divs inside #container, it returns -1.
>
> Am I totally missing something with index?

Reply via email to