您的位置:首页 > Web前端 > JavaScript

js拼接字符串时,字符串的事件参数需要传对象或对象数组的处理方法

2014-05-12 15:41 537 查看
js拼接字符串时,字符串的事件参数需要传对象或对象数组的处理方法

有时候在js拼接字符串时,需要传递对象或对象数组,这时候直接将事件拼接在html达不到想要的效果,如

$(document).ready(function(){

var dd=[];

for(var i=0;i<3;i++){

var obj ={};

obj.a='i'+i;

obj.b='j'+i;

dd.push(obj);

}

var html="<a href='javascript:void(0);' onclick=\"fn_test("+dd+");\">aaaaa</a>";



$("#test").append(html);

});

function fn_test(b){

for(var i=0;i<b.length;i++){

alert(b[i].a);

}

}

dd参数为对象数组,直接这样做会对象参数会成为一个字符串传递过去,而达不到预料的效果,我们可以换种思路:先把生成的html字符串apend到页面上,然后再给节点绑定事件.

解决办法:

$(document).ready(function(){

var dd=[];

for(var i=0;i<3;i++){

var obj ={};

obj.a='i'+i;

obj.b='j'+i;

dd.push(obj);

}







var html=$("<a href='javascript:void(0);'>aaaaa</a>");

$("#test").append(html);

html.click(function(){

fn_test(dd);

});

});

function fn_test(b){

for(var i=0;i<b.length;i++){

alert(b[i].a);

}

}

或者

$(document).ready(function(){

var dd=[];

for(var i=0;i<3;i++){

var obj ={};

obj.a='i'+i;

obj.b='j'+i;

dd.push(obj);

}







var html="<a id="testNode" href='javascript:void(0);'>aaaaa</a>";

$("#test").append(html);

$("testNode").bind("click",function(){

fn_test(dd);

});

});

function fn_test(b){

for(var i=0;i<b.length;i++){

alert(b[i].a);

}

}

这样即达到想要的效果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐