【群成员QA】JavaScript 字符串拼接问题
假设你的 obj 对象长这样(其他的不管):
var obj = { |
假设你的 Button 字符串长这样
var html = "<button onclick='updateScheduleStatus(" + obj.data[0].scheduleId + ", " + obj.data[0].status + ")'></button>"; |
他的拼接结果如下
<button onclick='updateScheduleStatus(1, Confirmed)'></button> |
显然,updateScheduleStatus() 的第二个参数将会变成一个名叫 Confirmed 的变量。且这个变量是不存在的。
我们实际要的输出结果是:
<button onclick='updateScheduleStatus(1, "Confirmed")'></button> |
这样 Confirmed 才会是字符串,而非变量
解决方案:这里我们用了键盘数字 1 左侧(esc 键下方)的 ` 号作为整个字符串的开关号(也称作 JavaScript 模板字符串),然后把我们需要输出的变量用 ${}
包含起来
var html = `<button onclick='updateScheduleStatus(${obj.data[0].scheduleId}, "${obj.data[0].status}")'></button>` |
注意,我们的 status 那边的前后放了 ""
这样,就会变成字符串了。
拼接结果结果如下:
<button onclick='updateScheduleStatus(1, "Confirmed")'></button> |
完美解决
PS: 你的单双引号需要注意位置哈(onclick 之后用的是单引号,所以后面的字符串就要用双引号。反之亦然)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 麦甜怪圈 Xiaomai Circle!