jQuery的$(this).index()

来源:2-1 鼠标事件-click、dblclick

rayyli

2020-09-08 18:48:35

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<title>点击事件</title>
<style type="text/css">
div {
float: left;
margin: 10px;
width: 100px;
height: 100px;
color: #fff;
font-size: 50px;
text-align: center;
line-height: 100px;
text-indent: -9999px;
background-color: #333;
}
</style>
</head>

<body>
<h1>添加事件处理</h1>
<div>43</div>
<div>21</div>
<div>56</div>
<div>16</div>
<div>89</div>
<div>94</div>
<div>46</div>
<div>26</div>
<div>67</div>
<div>90</div>
<div>25</div>
<div>10</div>
<div>84</div>
<div>76</div>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
<script>
$('div').click(function () {
// console.log($(this));
$('div').eq($(this).index() - 1).css({'text-indent': '0px'});
});
</script>
</body>
</html>

$(this).index()为何不是从第一个元素开始的?

写回答

1回答

好帮手慕慕子

2020-09-08

同学你好,代码效果实现是正确的,针对同学的问题解答如下:

$(this)指向的是被点击的div元素,$(this).index()是获取被点击的div元素在兄弟元素中的索引。

因为在html结构中,div前面有一个同级元素h1,所以是从h1开始计算索引的,并不是从第一个div开始计算索引的。示例:

http://img.mukewang.com/climg/5f5764ef09d3d2fb03670185.jpg

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

1

0 学习 · 14456 问题

查看课程