for(var i=0;i<slideLength;i++){
$(".slide").eq(i).index=i;
$(".slide").eq(i).on("click",function(){
console.log($(this).index);
});
}
我想问一下,我用$(".slide").eq(i)这句话来取第i个节点,还有其他方法吗,最重要的是console.log($(this).index); 这个是不存在的,我想问一下为什么呢??
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
我们从实际的应用来表达一下你的意思吧
举个栗子,有这样一堆li
我希望点击每个li,都能够在控制台中输出li的内容,于是可以这样写
你运行试试看,效果已经达到了。
这里运用了事件委托的思想,在点击时,使用 $(e.target)来判断被点击的对象
其中 e.target是DOM对象,表示的是被点击的li,
$(e.target)当然就是被点击那个li的jQuery对象了
也许在其他的一些应用场景中,你需要得到被点击li的序列,比如幻灯片切换效果的那一堆小按钮,除了在li中直接设置1,2,3,4之外,现在还流行一种做法,就是设置诸如
data-item
之类的属性值整个例子的完整代码如下
试试看
.index添加自定义属性是js的方式。
jquery对属性操作不是attr么。
你这代码有很大的优化空间啊,
$(".slide").each(function(i){
$(this).attr('index',i).on('click',function(){
})
});
要用闭包把循环的包裹起来
获取序号不是有index()么。。