$("li:eq("+i+")") 与 $("li").eq(i)
有没有人知道$("li:eq("+i+")") 这个里面为什么要这样写——("+i+") ,这个双引号是怎么断的
有没有人知道$("li:eq("+i+")") 这个里面为什么要这样写——("+i+") ,这个双引号是怎么断的
2015-03-17
引用慕课上看到的两个回答。我来整合一下吧= =
首先+i+是用双引号包围的,这一层外面还是双引号,所以+i+肯定不是一个整体,因为双引号里面加双引号肯定不行的啦,引起冲突神马的,一般双引号里面加单引号才表示单引号里面是整体。
然后举个栗子
var i=1;
alert(i); //输出1
alert("i") //输出字符i
回到问题,如果直接写$("li:eq(i)")浏览器就会直接理解为获取字符串"li:eq(i)"了,这就不是我们想要的啦
所以如果想把变量值夹在括号之间就相当于把外括号中的内容拆分成三个部分
第一部分li:eq(
第二部分i
第三部分)
然后用"+"连接。
举报