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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 循环拼接字符串里调用function里传对象参数相关的知识,希望对你有一定的参考价值。

for(var i=0;i<result.data.length;i++)
str1+="<div class='col-xs-4 col-md-3' style='margin-buttom:0px;border:1px;padding: 4px'>"
+"<div class=\"thumbnail\" style='margin-bottom: 2px;'>"
+"<a onclick='aa("+result.data[i]l+")'>"
+"<img src='"+result.data[i].vpic+"' alt=\"暂无图片\"></a></div>"

(result.data[i]这个json对象是当字符串处理的)如何对象传参?用append()参数是循环的最后一个对象

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

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


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

for(var i=0;i<result.data.length;i++)
    window["data_"+i]=result.data[i];
    ...
    +'<a onclick="aa(data_'+i+')">'//这时data_*已经是一个赋了值变量名了
    +...

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

1

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

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

1
2
3
4
5
6

for(var i=0;i<result.data.length;i++)
window["data_"+i]=result.data[i];
...
+'<a onclick="aa(data_'+i+')">'//这时data_*已经是一个赋了值变量名了
+...
参考技术B 你onclick的时候 这样

<a onclick=\"aa('"+result.data[i]+ "')\">追问

不是这个问题,这里是把result.data[i]这个json对象当【obj,obj】这个字符串处理了

追答

哦 那你可以试试 result.data[i].toString() 传参过去

不过你的字符串组装的时候 是有点问题的 就是你onclick的时候 如果传字符串 是没有用单引号包裹的

追问

没有解决问题,不过给你吧

本回答被提问者和网友采纳
参考技术C 我建议你使用事件委托和自定义属性!
这样你代码就好维护了
参考技术D aa("+result.data[i]l+")可以传个i给aa方法,再在aa方法里根据i得到result.data[i]追问

result.data也是json变量,不停在变的,如何得到?

javascript对象属性拼接

对象方法里要通过一个变量来调用显示对象属于名称,可以这样做

var person = {
            borther1: { name: "tom" },
            borther2: { name: "jack" },
            borther3: { name: "david" },
            sayBorther: function (num) {
                return this["borther"+num]
            }
        }

我们知道person.borther1等同于person["borther"],

person["borther"]用字符串拼接的写法就是person["borther"+1]

应用到上述方法

以上是关于js 循环拼接字符串里调用function里传对象参数的主要内容,如果未能解决你的问题,请参考以下文章

js字符串拼接的问题

java 静态方法里传对象

jquery 循环数组输出显示在html页面

在js中进行字符串拼接。

js中如何拼接字符串

javascript对象属性拼接