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

eq里如果是变量,为什么要左右各加+呢?

$("li:eq("+i+")").css("display","none");为什么这里一定要加上+i+?

正在回答

5 回答

首先看到+i+是用双引号包围的,然后这一层外面还有双引号,所以+i+肯定不是一个整体,因为双引号里面加双引号肯定不行的啦,引起冲突神马的,一般双引号里面加单引号才表示单引号里面是整体。。

然后不是整体就好说啦。。那就分成了三个部分

第一部分li:eq(

第二部分i

第三部分)

然后假如i=0;i++;

那么这个就相当于:

$("li:eq(0)").css("display","none");

$("li:eq(1)").css("display","none");

$("li:eq(2)").css("display","none");

...

我是这么理解的。。。

1 回复 有任何疑惑可以回复我~
#1

大脚哈哈哈哈哈 回复 capriciousfish

两个意思一样啊
2016-01-28 回复 有任何疑惑可以回复我~
#2

欧罗巴皇 回复 capriciousfish

不是一样么
2016-04-12 回复 有任何疑惑可以回复我~

我也理解不了,有人再帮忙解释下么。十分感谢。

0 回复 有任何疑惑可以回复我~

首先$() 括号里面的是字符串 ,因为它是用引号括起来的

然后举个类似的例子让你参考下

alert()这个记得把,如果里面是字符串,那么也是必须加引号的,如果里面是变量呢?那就不需要加

例如var i = 1;

alert(i); 结果是1   但是如果alert("i"),那么这个输出就是 i 了

alert("li:eq()"),这个出来的就是   //    li:eq()  这个结果吧

现在我要把变量值夹在括号之间怎么写呢??相信你已经知道了吧

区别就在于 alert("li:eq("+i+")") 输出 li:eq(变量i的值)    而alert("li:eq(i)") 输出是 li:eq(i)

2 回复 有任何疑惑可以回复我~
#1

capriciousfish

太感谢你了 这个问题困扰了好久
2016-01-27 回复 有任何疑惑可以回复我~

字面写字符串?必须是数值型才对吧?

0 回复 有任何疑惑可以回复我~

应该是里面要写字符串 , 所以要拼 "+i+" , 把 i 的值放进去

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
jQuery基础课程
  • 参与学习       154768    人
  • 解答问题       7184    个

加入课程学习,有效提高前端开发速度

进入课程

eq里如果是变量,为什么要左右各加+呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信