虽然写出来了,但是$(this).index()为什么这么写有点模糊了

来源:2-2 编程练习

CC陈十一

2019-03-20 18:53:31

<!DOCTYPE html>
<html>

<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(){
        $('div').eq($(this).index()-1).css('text-indent','0');
    })
    </script>
</body>
</html>


写回答

1回答

好帮手慕糖

2019-03-20

同学你好,$(this).index()是获取当前元素的索引,是从0开始的,但是这里把h标签也算上了,索引第一个div的索引就是1了,可以输出测试下哦,例:

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

或者可以写为,如下这种,只在div中选择不包括h1标签。

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

另,这里代码还可以再优化下哦,可以直接写$(this)即当前元素,例:

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

希望能帮助到你,欢迎采纳。

祝学习愉快!

0

0 学习 · 36712 问题

查看课程