jquery为什么eq里的i要加双引号

具体代码就不写了,因为很多地方都看到用for循环,形如
for (var i = 0; i < $('.li_content').length; i++)
然后选择的时候,用+i+来确定具体位置,比如$(".abc:eq("+i+")")
我要问的是,$(".abc:eq("+i+")")中为什么要用+i+而不是直接用i
到底这2个加号连接了什么?
最新回答
温茶

2024-10-31 19:43:20

jquery的$函数的参数只能是字符串(document和window对象除外),所以楼上说的不正确,像

$(".abc:eq("i")")

相当于参数是字符串、整型、字符串,而且还没逗号分隔开,是非法参数,  是会报错的。

$(".abc:eq("+i+")")

是字符串拼接,相当于先执行括号内部分,字符串".abc:eq(" 拼接i变量再拼接字符串")",而如果像这样

$(".abc:eq(i)")

则是非法的,因为此时 i 是一个字符无法识别字符 i

烈艳红唇

2024-10-31 13:55:38

如果是$(".abc:eq("+i+")")是比较i数值的大小;
如果是$(".abc:eq("i")")是判断类是否等于i这个字符
睫毛下的眼泪坠落花已枯萎

2024-10-31 18:11:55

$(".abc:eq("+i+")")和$(".abc:eq(i)")

的区别在于,前者i是变量,后者i是一个字符串i
前者如果在for循环中,则i是会根据循环值的不同而变化,后者是不会变化的,就是i。
+在这里是变量与字符串的连接