在jQuery中,我们可以使用index()方法来获取当前jQuery对象集合中“指定元素”的索引值。
语法:
$().index()
说明:
index()方法可以接受一个“jQuery对象”或“DOM对象”作为参数,不过一般情况下,我们很少会使用到参数。当index()不带参数时,一般指的是当前元素相对于父元素的索引值。
特别注意一点,索引值是从0开始,而不是从1开始的。
举例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function () {
$("li").click(function () {
var index = $(this).index();
alert("当前元素的索引是:"+index);
})
})
</script>
</head>
<body>
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
<li>jQuery</li>
<li>Vue.js</li>
</ul>
</body>
</html>
浏览器预览效果如下图所示。
分析:
$(this).index()表示获取当前li元素的索引值。其中索引值从0开始,比如第1个li元素的索引值是0,第2个li元素的索引值为1,以此类推。
index()方法非常有用,特别是在Tab选项卡和图片轮播特效中,我们来看一下它在Tab选项卡中是怎么用的。
举例:Tab选项卡
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
*{padding: 0;margin: 0;}
.title{list-style-type: none;overflow: hidden;}
.title li
{
float: left;
width:100px;
height:36px;
line-height:36px;
text-align:center;
color:white;
cursor: pointer;
}
.title li:nth-child(1){background-color: hotpink;}
.title li:nth-child(2){background-color: lightskyblue;}
.title li:nth-child(3){background-color: purple;}
.content
{
width:298px;
border:1px solid gray;
}
.content li{display: none;}
li.current{display: block;}
</style>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function () {
$(".title li").click(function () {
var n = $(this).index();
$(".content li").removeClass("current").eq(n).addClass("current");
})
})
</script>
</head>
<body>
<div class="wrapper">
<ul class="title">
<li>娱乐</li>
<li>经济</li>
<li>军事</li>
</ul>
<ul class="content">
<li class="current">这是“娱乐”栏目<br/>这是“娱乐”栏目<br/>这是“娱乐”栏目</li>
<li>这是“经济”栏目<br>这是“经济”栏目<br/>这是“经济”栏目</li>
<li>这是“军事”栏目<br/>这是“军事”栏目<br/>这是“军事”栏目</li>
</ul>
</div>
</body>
</html>
浏览器预览效果如下图所示。
分析:
当我们点击上方的第n个li元素,就会显示下方的对应的第n个li元素,这就是我们常见的“Tab选项卡”效果。
$(".content li").removeClass("current").eq(n).addClass("current");
对于上面这句代码,很多初学的小伙伴可能看不懂。其实我们一步步来分析,也是很容易理解的。首先$(".content li").removeClass("current")
表示移除所有li元素中的“current”这个类名,然后eq(n)表示获取索引值为n的li元素,最后addClass("current")
表示为索引值为n的li元素添加“current”这个类名。
这句代码非常经典,也非常有用,大家一定要认真琢磨透。当然了,上面这个例子的样式有点丑,小伙伴们可以自行完善一下。我们简化样式只是为了方便讲解。