get方法是通过已知的索引在合集中找到对应的元素。如果反过来,已知元素如何在合集中找到对应的索引呢?
.index()方法,从匹配的元素中搜索给定元素的索引值,从0开始计数。
语法:参数接受一个jQuery或者dom对象作为查找的条件
.index() .index( selector ) .index( element )
简单来说:
<ul> <a></a> <li id="test1">1</li> <li id="test2">2</li> <li id="test3">3</li> </ul>
$("li").index() 没有传递参数,反正的结果是1,它的意思是返回同辈的排列循序,第一个li之前有a元素,同辈元素是a开始为0,所以li的开始索引是1
如果要快速找到第二个li在列表中的索引,可以通过如下2种方式处理
$("li").index(document.getElementById("test2")) //结果:1
$("li").index($("#test2")) //结果:1
实际的使用可以参考右边的代码区域:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <title></title> <style> a { font-size: 30px; font-weight: 900; } </style> <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script> </head> <body> <h2>index方法</h2> <ul> <a></a> <a></a> <li id="test1">1</li> <li id="test2">2</li> <li id="test3">3</li> </ul> <ul> <li id="test4">4</li> <li id="test5">5</li> <li id="test6">6</li> </ul> <select id="animation"> <option value="1">index无参数</option> <option value="2">index传递dom</option> <option value="3">index传递jQuery对象</option> </select> <input id="exec" type="button" value="点击执行"> <br /> <br /> 索引结果: <span></span> <script type="text/javascript"> $("#exec").click(function() { var v = $("#animation").val(); var $span = $("span"); $span.empty(); if (v == "1") { //找到第一个li的同辈节点中的索引位置 $span.text($("li").index()) } else if (v == "2") { //通过传递dom查找 $span.text($("li").index(document.getElementById("test5"))) } else if (v == "3") { //通过传递jQuery对象查找 $span.text($("li").index($("#test6"))) } }); </script> </body> </html>