.index()是一个JQuery对象方法,一般用于搜索JQuery对象上一个给定的元素。该方法有四种不同的函数签名,接下来将讲解这四种函数签名的具体用法。
  • 无参数的.index()
<ul>
<div></div>
<li id="foo1">foo</li>
<li id="bar1">bar</li>
<li id="baz1">baz</li>
<div></div>
</ul>
var $foo = $( "#foo1" );
console.log( "Index: " + $foo.index() ); // 1
var $listItem = $( "li" );
// 隐式调用.last()
console.log( "Index: " + $listItem.index() ); // 3
console.log( "Index: " + $listItem.last().index() ); // 3
var $div = $( "div" );
console.log( "Index: " + $div.index() ); // 4
console.log( "Index: " + $div.last().index() ); // 4

在第一个例子中,.index()给出的是#foo1在其父节点内的序号(从0开始),由于它是其父节点中的第二个元素所以返回的是1。

    当一个JQuery对象调用.index()时,如果它包含了多个元素,那么不会计算其中第一个元素的序号,而是计算其中最后一个元素的序号,这相当于总是调用$jqObject.last().index()。
  • 一个字符串作为参数的.index()
<ul>
<div class="test"></div>
<li id="foo1">foo</li>
<li id="bar1" class="test">bar</li>
<li id="baz1">baz</li>
<div class="test"></div>
</ul>
<div id="last"></div>
var $foo = $( "li" );
// 隐式调用.first()
console.log( "Index: " + $foo.index( "li" ) ); // 0
console.log( "Index: " + $foo.first().index( "li" ) ); // 0
var $baz = $( "#baz1" );
console.log( "Index: " + $baz.index( "li" )); // 2
var $listItem = $( "#bar1" );
console.log( "Index: " + $listItem.index( ".test" ) ); // 1
var $div = $( "#last" );
console.log( "Index: " + $div.index( "div" ) ); // 2

当传入一个字符串作为参数来调用.index()时,有两个情况需要注意。

    第一,JQuery对象将隐式调用.first(),因此它将获取第一个元素的序号,而非最后一个元素。
    第二,JQuery对象是根据字符串选择器查询整个DOM,并且检测其在这个字符串选择器元素集合中的序号。
    例如,使用.index( "div" )的时候,选择的是整个文档中的所有div元素中的第一个元素。
  • 一个JQuery对象作为参数的.index()
<ul>
<div class="test"></div>
<li id="foo1">foo</li>
<li id="bar1" class="test">bar</li>
<li id="baz1">baz</li>
<div class="test"></div>
</ul>
<div id="last"></div>
var $foo = $( "li" );
var $baz = $( "#baz1" );
console.log( "Index: " + $foo.index( $baz ) ); // 2
var $tests = $( ".test" );
var $bar = $( "#bar1" );
// 隐式调用参数的.first()
console.log( "Index: " + $tests.index( $bar ) ); // 1
console.log( "Index: " + $tests.index( $bar.first() ) ); // 1

这种情况下,将会检查传入.index()的JQuery对象的第一个元素在原JQuery对象元素中的序号,这个原JQuery对象就是.index()左侧的那个JQuery对象。

  • 一个DOM元素作为参数的.index()
    这种情况下,将会传入一个DOM元素到.index()中,并检查其在原JQuery对象元素集合中的序号。

JQuery官方学习资料(译):使用JQuery的.index()方法的更多相关文章

  1. JQuery官方学习资料(译):避免与其他库的冲突

    避免与其他库的冲突     JQuery库和它所有的插件都是包含在jQuery命名空间下的,作为一般规则,全局对象被存储在jQuery的命名空间内,所以你不会得到jQuery和任何其他库之间的冲突(例 ...

  2. JQuery官方学习资料(译):类型

    类型     JavaScript提供了多个内置数据类型.除了这些,这份文档还将介绍一些虚拟类型,例如选择器.伪类.事件等. String 在JavaScript中字符串是一个不可变的对象,它包含无. ...

  3. JQuery官方学习资料(译):遍历JQuery对象和非JQuery对象

        JQuery提供了一个对象遍历的Utility方法$.each()和一个JQuery集合遍历方法.each(). $.each()     $.each()是一个通用的方法用来遍历对象和数组, ...

  4. JQuery官方学习资料(译):Utility方法

        JQuery提供了一些utility方法在$命名空间里,这些方法对完成常规的编程任务非常有帮助. $.trim()     删除前后部的空白内容. // 返回 "lots of ex ...

  5. JQuery官方学习资料(译):Data方法

        你可能经常会想需要通过元素来存储一些数据.在JavaScript中你可能需要给元素添加属性来实现这样的功能,但是在某些浏览器中,你可能还需要处理因此造成的内存泄露问题.JQuery提供了一个简 ...

  6. JQuery官方学习资料(译):CSS

        JQuery提供了一个处理方法,可以获取或设置元素的CSS属性. // 获取 CSS 属性 $( "h1" ).css( "fontSize" ); / ...

  7. JQuery官方学习资料(译):遍历

        一旦你通过JQuery创建了选择器,你就可以对此进行更为深入的遍历.遍历可以分为三个基本组成部分,父节点.子节点和兄弟节点.JQuery为这些部分提供了许多丰富易用的方法. <div c ...

  8. JQuery官方学习资料(译):JQuery对象

        每当创建一个新的元素(或者选择一个已经存在的元素)时,JQuery将返回一个元素的集合.大部分的开发人员新接触JQuery的时候,都把这个集合当做数组.这个集合中的DOM元素有从零开始的索引, ...

  9. JQuery官方学习资料(译):操作元素

      获取和设置元素的信息     有很多种方式可以改变现有的元素,最常见的是改变HTML内容或者元素的属性.JQuery提供了简单的夸浏览器的方法来帮助你实现元素信息的获取和设置. .html():获 ...

随机推荐

  1. POJ 1511 - Invitation Cards 邻接表 Dijkstra堆优化

    昨天的题太水了,堆优化跑的不爽,今天换了一个题,1000000个点,1000000条边= = 试一试邻接表 写的过程中遇到了一些问题,由于习惯于把数据结构封装在 struct 里,结果 int [10 ...

  2. Xml文件操作的其中一个使用方法:

    XmlNodeList students = doc.DocumentElement.ChildNodes;//Student节点集合 foreach (XmlNode stu in students ...

  3. 连通图模板(HDU 1269)

    http://acm.hdu.edu.cn/showproblem.php?pid=1269 题目大意:给定一个图,判断该图是否是强连通图.(强连通图为从任意一点出发,可到达其他所有点).深搜的Tar ...

  4. 测试C++代码与WebBrowser HTML的互动

    testWebBrowserDlg.h // testWebBrowserDlg.h : 头文件 // #pragma once #include "explorer1.h" #i ...

  5. Oracle中Lpad函数和Rpad函数的用法

     http://blog.csdn.net/woshixuye/article/details/17262307 一.Lpad函数 lpad函数将左边的字符串填充一些特定的字符其语法格式如下:lpad ...

  6. js判断访问终端

    //判断访问终端 var browser={ versions:function(){ var u = navigator.userAgent, app = navigator.appVersion; ...

  7. 关于IE8及其以下的IE版本不支持getElementsByClassName

    之前做一下项目的时候知道IE8以及其以下的版本不支持getElementsByClassName,于是乎自己写了一个函数重新定义getElementsByClassName,函数代码如下: funct ...

  8. 必填项(required)

    当你设计表单时,你可以指定某些选项为必填项(required),只有当用户填写了该选项后,用户才能够提交表单. 例如,如果你想把一个文本输入字段设置为必填项,在你的input元素中加上required ...

  9. 横竖屏切换时Activity的生命周期

    设置横竖屏切换时Activity生命周期的属性设置,在清单文件中的Activity节点中设置.根据具体需求设置: 1.不设置Activity的android:configChanges时,切屏会重新调 ...

  10. Install Solr+tomcat

    1. chose the release you want: http://archive.apache.org/dist/lucene/solr/. 1) copy [solr_home]/dist ...