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

"

"<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生成的实在是不知道在哪里加了,


慕虎7371278
浏览 422回答 1
1回答

HUH函数

报错误的原因是,你拼接html的时候,把title作为一个变量传进去了,而不是一个字符串。而如果你使用字符串冒号包裹title的话又会和html的冒号冲突,因此比较好的方式是,onclick=cancelDouble('+item.index+',"'+item.title+'") 的时候,onclick=后面的方法不要用引号包裹,然后参数就可以友好的拼接字符串,把参数当成字符串处理而不是变量&nbsp; &nbsp; var arr = [&nbsp; &nbsp; &nbsp; &nbsp; { index: 0, title: 'title0' },&nbsp; &nbsp; &nbsp; &nbsp; { index: 1, title: 'title1' },&nbsp; &nbsp; &nbsp; &nbsp; { index: 2, title: 'title2' },&nbsp; &nbsp; &nbsp; &nbsp; { index: 3, title: 'title3' },&nbsp; &nbsp; &nbsp; &nbsp; { index: 4, title: 'title4' },&nbsp; &nbsp; ];&nbsp; &nbsp; var htm = '';&nbsp; &nbsp; arr.forEach(function(item) {&nbsp; &nbsp; &nbsp; &nbsp; htm+='<li><input type="button" value="确定" class="verifition" onclick=cancelDouble('+item.index+',"'+item.title+'")></li>';&nbsp; &nbsp; });&nbsp; &nbsp; $("body").html(htm);&nbsp; &nbsp; function cancelDouble(index,title){&nbsp; &nbsp; &nbsp; &nbsp; console.log(index,title)&nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript