jq不识别拼接的对象id的解决方案

今天在做项目时,遇到了这么个问题。

 

先声明一下,我的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值的。

原文地址:https://www.cnblogs.com/zywf/p/4546413.html