.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. Erlang 从入门到精通(一) 下载安装

    我的电脑配置: 系统:win8.1  x64 内存:16G 在官网下载http://www.erlang.org/

  2. Selenium2+python自动化1-环境搭建

    前言 目前selenium版本已经升级到3.0了,网上的大部分教程是基于2.0写的,所以在学习前先要弄清楚版本号,这点非常重要.本系列依然以selenium2为基础,目前selenium3坑比较多,暂 ...

  3. NSDictionary to jsonString

    NSDictionary to jsonString [self DataTOjsonString:dic] -(NSString*)DataTOjsonString:(id)object { NSS ...

  4. IT公司笔试题(一)

    1.  已知一个递归算法的算法复杂度计算公式为T(n) = T(n/2) + n,则T(n)的算法复杂度为多少? 解:O(n) T(n) = T(n/2) + n = T(n/4) + n/2 + n ...

  5. SAS文档:简单的随机点名器

    本次实验,我们设计了一个简单的随机点名系统,下面我来介绍一下它的SRS文档. 1.功能需求: 1.1 模块1 在此模块中,我们设置了RandomName类,创建一个随机点名器,里面加入了所在课程的名单 ...

  6. LVM基本概念、管理

    一.传统磁盘管理的问题 当分区大小不够用时无法扩展其大小,只能通过添加磁盘.创建新的分区来扩充空间,但是新添加进来的硬盘是作为独立文件系统存在的,原有的文件系统并未得到扩充,上层应用很多时候只能访问一 ...

  7. UWP深入学习六:Build better apps: Windows 10 by 10 development series

    Promotion in the Windows Store  In this article, I walk through how to Give your Store listing a mak ...

  8. 基本套接字编程(1) -- tcp篇

    1. Socket简介 Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换. 几个定义: (1)IP地址:即依照TCP/IP协议分配给本地主机 ...

  9. EditText 焦点

    让EditText不自动获取焦点,只需要在EditText的父控件加上 android:focusable="true"android:focusableInTouchMode=& ...

  10. 2006Jam的计数法

    题目描述 Description Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个数字的位数都是相同的(使用 ...