在JavaScript中使用append动态生成包含onclick事件的HTML时,若参数同时包含整数和字符串,直接拼接会导致调用失败。原因在于onclick参数中的单引号在append中被视为分割符,导致参数失去单引号包裹,函数无法执行。解决方法是在append字符串中通过转义符(如/')正确输出单引号,确保参数格式正确。
append动态生成onclick传参问题
append后面跟要添加的参数
<i class="fa fa-share pointer" aria-hidden="true" title="分享" onclick="share('${img.imgId}','${img.imgTitle}','${imgCover}','http://www.liuda.tv/selectedImg?imgId=${img.imgId}')"></i>
问题原因分析
上述代码若使用append添加内容,在调用ajax返回数据并将其插入到onclick属性中时,会出现数据显示异常甚至整个JS模块失效的情况。其根本原因在于,当onclick的参数同时包含整数和字符串时,必须为参数添加单引号以正确标识字符串类型。然而,在append操作中,单引号默认被视为字符串的分割符,这导致参数无法正常输出。即使参数被输出,也往往是不带单引号的格式,这使得原本定义的function无法正常工作。
解决方案
解决方案是,在append字符串中需要输出单引号时,应使用转义符。具体而言,使用一个斜杠后跟单引号(/')即可正确表示单引号。
以上所述是小编给大家介绍的JS中append字符串包含onclick无效传递参数失败的解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对本站网站的支持!