我查了好久都没发现那里有不对
var arr = $(".menu-bottom").find("li");
//alert(arr.length)
$(".menu-bottom").find("li").click(function(){
for(var i = 0;i

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
'arr[i]'不是 jQuery 对象,要用 'arr.eq(i).hasClass()'。
为什么要在里面写个循环。。。
这段代码可能是如闭包引起的,你再for循环的第一行打印一下i看他每次输出是不是都是一样的。
var arr = $(xxxxx),用的jquery?那么 arr[i] 是一个 dom ,没有 hasClass 方法
可以用
arr.eq(i).hasClass()Jquery已经帮你全部绑定了而你还多此一举。。不用做循环
其实完全没必要用if来判断有没有,直接去移除就好了,如果没有打电话,会自动掠过,还有,感觉这代码也不用jq来写的吖…原生js能完美胜任的
既然 arr 是一个 jQuery 对象,那比较推荐的遍历是用
arr.each()但是仍然有三个地方需要改进
removeClass之前没必要去判断一下,反正如果没有也不会有啥效果。既然 ES6 已经出来这么久了,考虑兼容 ES6 的 Lambda 写法,不用 $(this),改用参数