js 拼接HTML字符串 onclick事件传多个参数问题

欢迎来到Altaba的博客  2017年10月27日

问题:烦躁工作让技术博客停了好久才更新,实在对不住大家和自己了,今天重新捡起来 

直接上源码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js字符串拼接onclick出现的问题</title>
</head>
<body>
    <div id="box">

    </div>
</body>
</html>
<script src="../../../js/jquery1.7.js"></script>
<script>
    function show(a,b) {
        //console.log(a.name);
        //console.log(a.age);
        console.log(a);
        console.log(b);
    }

    function show2(a) {
        console.log(a);
        alert(a);
        console.log(a.name);
        console.log(a.age);

    }

    var arr = [
        {
            name:'wangwu',
            age:23,
            hight:[180,180,180]
        },

        {
            name:'zhangsan',
            age:22,
            hight:[180,160,180]
        },
        {
            name:'lisi',
            age:21,
            hight:[180,170,180]
        }
    ]

    var ht=''


    for(var i=0 ; i< arr.length ; i++){
        //错误示范1,点击事件不触发
        //ht = ht + '<div><button οnclick="show(arr[i].name,arr[i].age)">我是按钮'+i+'</button></div><br>'

        //错误示范2,点击事件在页面加载时候就已执行
        //ht = ht + '<div><button οnclick="'+show(arr[i].name,arr[i].age)+'">我是按钮'+i+'</button></div><br>'

        //错误示范3,点击事件不触发
        //ht = ht + '<div><button οnclick="show('+arr[i].name+','+ arr[i].age +')">我是按钮'+i+'</button></div><br>'

        //错误示范4
        //ht = ht + '<div><button οnclick=show2("'+arr[i]+'")>我是按钮'+i+'</button></div><br>'

        //正确示范1
        //ht = ht + '<div><button οnclick=show("'+arr[i].name+'","'+ arr[i].age +'")>我是按钮'+i+'</button></div><br>'
        
        //正确示范2
        ht = ht + '<div><button οnclick=show2('+JSON.stringify(arr[i])+')>我是按钮'+i+'</button></div><br>'


    }

    $('#box').append(ht)
</script>


正确示范 1,2为可解决办法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值