问题见代码
来源:2-2 编程练习
慕雪2331507
2019-07-11 14:50:42
$("div").click(function(){
// $(this).css("text-indent","0");
$("div").eq($(this).index()-1).css("text-indent","0");
})
相册示例中的代码:
$('a').click(function() {
$('img').eq($(this).index()).css({ 'opacity': '1' }).siblings().css({ 'opacity': '0' });
});
问题1:$(this)是不是指代的是click前面的元素。如相册代码中指代的是$('a')?
问题2:为啥相册例子中$(this).index()不需要减1,这边需要减1. $(this).index是不是从<body>后面标签算起?这边例子中h1是index:0,<div>是index:1??
1回答
同学你好,
1、$(this)指向的是执行事件的元素,前面是给所有的div绑定上了点击事件,但是点击一个div的时候,$(this)指向的就是这一个div,不是所有的哦。
2、索引理解的没有问题,因为在body父容器中,第一元素是h1,不是div,所以div的索引需要从1开始,但是在所有div中,第一个div索引是0,所以在计算的时候需要减去1 。而在视频中所有nav容器中只有a标签,索引值按照正常计算即可。
祝学习愉快!
相似问题