今天在做项目时,遇到了这么个问题。
先声明一下,我的id都是动态变换的。从1-10呢。
<div id="a1"></div>
<div id="a2"></div>
<div id="a3"></div>
...
这里,我就列举3个做示范。
循环给 a1 a2 a3 赋值,
for(var i=1;i<=3;i++)
{
$("#a"+i).html("我是"+i); // 红色部分是不识别的。
}
大家注意这个写法 "#a"+i (简单的拼接字符串),这个写法jq是不识别的,会返回null值,但是getElementById() 识别这个写法。
但是此处我不想用getElementById()这个方法,想用jq的方法写。
解决方案如下:
用eval()函数,
此处我们可以这么写 $(eval("a"+i)).html("我是"+i); ,jq就识别了,知道你要找的是id等于a1的对象了。
切忌,不要加 # 号 。
加的话作用就消失了,还是会返回null值的。