JavaScript onclick事件引号问题:如何正确包裹字符串类型foodId
解决onclick代码运行问题
你的问题核心是字符串类型的foodId没有被引号包裹,加上原写法里用箭头函数在onclick属性中拼接的方式存在语法问题,导致代码无法正常运行。
修正后的写法
方法1:转义单引号拼接
$('#results').append('<div onclick="cart(\''+ foodId +'\')"></div>');
给foodId两边加上转义的单引号\',确保字符串参数能被正确传递给cart函数,同时去掉不必要的箭头函数,直接在onclick中调用cart即可。
方法2:使用ES6模板字符串(更简洁)
$('#results').append(`<div onclick="cart('${foodId}')"></div>`);
模板字符串用反引号包裹,内部可直接用${变量名}插入值,引号不需要转义,代码可读性更高。
补充说明
如果坚持要用箭头函数(其实没必要,直接调用更简洁),也可以这样写:
$('#results').append(`<div onclick="(() => cart('${foodId}'))()"></div>`);
但这种写法冗余,不如直接调用函数高效。
内容的提问来源于stack exchange,提问作者Cedzy
相关产品推荐
相关产品推荐

