为了账号安全,请及时绑定邮箱和手机立即绑定

jquey动态创建dom,绑定函数,带有字符参数的问题?

jquey动态创建dom,绑定函数,带有字符参数的问题?

慕虎7371278 2018-12-27 22:19:20
""<li><input type='button' value='确定' class='verifition' onclick='cancelDouble("+this.index+","+this.title+")'></li>";<li><input type='button' value='确定' class='verifition' data-cid="+this.title+" onclick='cancelDouble("+this.index+")'></li>";本来是上面那样的,但是html编译出来,说this.title对应的字符是is not undifend,所有就只能曲线救国了,正常下html中的函数字符串是要有引号的,数字可不用,但是jquery生成的实在是不知道在哪里加了,
查看完整描述

1 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

报错误的原因是,你拼接html的时候,把title作为一个变量传进去了,而不是一个字符串。


而如果你使用字符串冒号包裹title的话又会和html的冒号冲突,因此比较好的方式是,onclick=cancelDouble('+item.index+',"'+item.title+'") 的时候,onclick=后面的方法不要用引号包裹,然后参数就可以友好的拼接字符串,把参数当成字符串处理而不是变量


https://img1.sycdn.imooc.com//5c4d626700015a1103500081.jpg


    var arr = [

        { index: 0, title: 'title0' },

        { index: 1, title: 'title1' },

        { index: 2, title: 'title2' },

        { index: 3, title: 'title3' },

        { index: 4, title: 'title4' },

    ];

    var htm = '';

    arr.forEach(function(item) {

        htm+='<li><input type="button" value="确定" class="verifition" onclick=cancelDouble('+item.index+',"'+item.title+'")></li>';

    });

    $("body").html(htm);

    function cancelDouble(index,title){

        console.log(index,title)

    }


查看完整回答
反对 回复 2019-01-27
  • 1 回答
  • 0 关注
  • 421 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信