jQuery index()方法的用法

在 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>
预览效果如图 1 所示。
index()方法的效果
图 1:index()方 法的效果

$(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>
预览效果如图 2 所示。
Tab选项卡
图 2:Tab 选项卡

当我们点击上方的第 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”这个类名。

这句代码非常经典,也非常有用,大家一定要认真琢磨透。上面这个例子的样式有点丑,小伙伴们可以自行完善一下。我们简化样式只是为了方便讲解。

相关文章

问题背景 最近小伙伴提了一个希望提高后台下拉列表可操作性的...
// n位随机数生成 function randomNum(n) { let sString = &...
HTML是HyperText Markup Language的简称,中文名称:超文本标...
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现...
JavaScript 是脚本语言,是一种解释性脚本语言(代码不进行预...
本文由葡萄城技术团队原创并首发 转载请注明出处:葡萄城官网...