为了账号安全,请及时绑定邮箱和手机立即绑定

请教jQuery高手一下!

请教jQuery高手一下!

GavinZeng 2016-10-12 11:17:19
for (var i = 0; i < $(".testP2").length; i++) {        $('.testP2').eq(i).addClass('test'+i); }遍历类名为“.testP2”的元素,添加不同样式问题:为什么该代码无效?
查看完整描述

5 回答

已采纳
?
stone310

TA贡献361条经验 获得超191个赞

这一小段代码没问题啊,贴出上下文看下,还有jQ是否成功引入

查看完整回答
反对 回复 2016-10-12
?
堂堂堂堂糖糖糖童鞋

TA贡献101条经验 获得超58个赞

这是一个全局变量i最后的值的问题(作用域问题)。

遍历之后,i的值为$(".testP2").length,那在通过$('.testP2').eq(i)就无法取得对应的元素,因为不存在$('.testP2').eq($(".testP2").length)的元素。

解决方式有两种:

for (let i = 0; i < $(".testP2").length; i++) {//ES6块级作用域声明let,兼容性不好
       $('.testP2').eq(i).addClass('test'+i);
}
for (var i = 0; i < $(".testP2").length; i++) {//闭包
       (function(i){
           $('.testP2').eq(i).addClass('test'+i);
       }(i))
}


查看完整回答
1 反对 回复 2016-10-12
?
OlderSkee

TA贡献123条经验 获得超103个赞

不用for  用each

查看完整回答
反对 回复 2016-10-12
?
qq_慕沐3137801

TA贡献1条经验 获得超0个赞

$(".testP2").each(function(index){

    this.assClass("test"+index)

})

查看完整回答
反对 回复 2016-10-12
?
杜发明

TA贡献202条经验 获得超301个赞

$(".testP2")这段放到外面定义,要多定义变量,这样代码的可读性才强

查看完整回答
反对 回复 2016-10-12
  • 5 回答
  • 0 关注
  • 2477 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信