js 循环拼接字符串里调用function里传对象参数

JavaScript013

js 循环拼接字符串里调用function里传对象参数,第1张

如果只需要result.data里的数据,可以把他再次序列化成json传过去

+'<a onclick="aa('+JSON.stringify(result.data[i]).replace(/"/g,"&"+"#34")+')">'

我当你result.data这个对象老是被改动数据,如果result.data[?]是不会被改变的对象的话,还可以把这些数据独立保存起来,比如最直接的放到window对象里:

for(var i=0i<result.data.lengthi++){

    window["data_"+i]=result.data[i]

    ...

    +'<a onclick="aa(data_'+i+')">'//这时data_*已经是一个赋了值变量名了

    +...

}

举个简单例子,希望你能明白,

1、下面输出结果是"jim",而不是"tom",

是因为数组中保存的都是指向json对象a的地址,

dd[0],dd[1],dd[2],dd[3]对象指向的内存地址相同,

当修改其中一个dd[0]的属性值的时候,数组所有元素指向的对象属性值都改变了。

var

dd

=

[]var

a

=

{

"cname":

"tom"

}for

(var

i

=

0

i

<4

i++)

{

dd[i]

=a}dd[0].cname

=

"jim"alert(dd[2].cname)2、下面输出结果是0,而不是1,

是因为数组元素dd[0],dd[1],dd[2],dd[3]对应的内存地址都不同,互不干扰。

var

dd

=

[]var

a

=

0for

(var

i

=

0

i

<4

i++)

{

dd[i]

=a}dd[0]=1alert(dd[2])

希望对你有帮助!