index(subject)
搜索与参数表示的对象匹配的元素,并返回相应元素的索引值值。
如果找到了匹配的元素,从0开始返回;如果没有找到匹配的元素,返回-1。--------------------------------------------------------------------------------Searches every matched element for the object and returns the index of the element, if found, starting with zero.
Returns -1 if the object wasn't found.
返回值
Number参数
subject (Element) : 要搜索的对象示例
返回ID值为foobar的元素的索引值值。 HTML 代码:<div id="foobar"><div></div><div id="foo"></div></div> 
jQuery 代码:$("div").index($('#foobar')[0]) // 0         ????这个为什么用数组的形式?
$("div").index($('#foo')[0]) // 2            ????这个为什么用数组的形式?改成[1]为什么找不到?
$("div").index($('#foo')) // -1
谢谢

解决方案 »

  1.   

    呵呵,他的意思很简单..
    $("div").index($('#foobar')[0])  //寻找当前<div>中id为foobar的第一个
    $("div").index($('#foo')[0])    // 寻找当前<div>中id为foo的第一个 你改成[1]肯定找不到的..这个div只有一个..下标是从0开始计算的..
      

  2.   

    $(id)方法返回的就是对象数组。
    你的页面代码中,只有一个id为foo的dom。试问,长度为一的数组,怎么能用[1]取值?
      

  3.   

    $('#foobar')[0] 是将jQuery对象转成DOM对象
      

  4.   

    上面的解释都很清楚了,Searches every matched element,当然是数组了,你去看看源代码么。
    $('#foo')[0],一共一个id为foo,改成[1]说明要找第二个,你说能找到么?
      

  5.   

    <div id="foobar">
    <div id="foo">
    </div>
    <div id="foo">sdf
    </div>
    </div> 
    <script>
    //$(document).ready(function(){
    alert($('#foo'));
    alert($("div").index($('#foo')[1]));//为什么这个还是找不到呢????
    //})
    </script>
      

  6.   

    我觉得你的理解不对,这个every是针对每次调用index说的,而不是调用index时每个匹配的元素说的
      

  7.   

    哪位老大解释一下这里的jQuery对象和DOM对象的区别?
      

  8.   

    jquery 的代码要写在$(document).ready(function(){
    });
    里面。
      

  9.   


    jQuery对象使用的jQuery的方法,DOM对象使用的DOM的方法
    详见 http://www.cnblogs.com/tiwlin/archive/2009/12/03/1616128.html
      

  10.   

    to lvbang_lzt:<div id="foobar">
    <div id="foo">
    </div>
    <div id="foo">sdf
    </div>
    </div> 
    <script>
    $(document).ready(function(){
    alert($('#foo'));
    alert($("div").index($('#foo')[1]));//为什么这个还是找不到呢????
    })
    </script>
    放在ready里头也没有找到
      

  11.   


    $("div").index($('#foobar')[0]) // 0 ????这个为什么用数组的形式?
    $("div").index($('#foo')[0]) // 2 ????这个为什么用数组的形式?改成[1]为什么找不到?
    $("div").index($('#foo')) // -1首先index是找指定元素的索引
    index的参数可以是选择器或jquery对象和dom对象
    $("div").index($('#foobar')[0])--$('#foobar')是一个jquery对象$('#foobar')[0]则是转换成普通的dom对象
    相当于document.getElementById("foobar");
    第二个也是一样,第三个是通过jquery对象查找指定元素的索引
    $("div").index($('#foo').get(0)) == $("div").index($('#foo')[0])
    $("div").index($(id['foo']:first))
    $("div").index($(id['foo']:eq(0)))
      

  12.   

    alert($("div").index($('#foo')[1]));//为什么这个还是找不到呢????
    注意用id选择器只能找到一个对象,下标永远是0;不可能是1的
    html中id是唯一的,除非改用其他的选择器