提问人:numuki sdf 提问时间:8/22/2019 最后编辑:numuki sdf 更新时间:8/22/2019 访问量:415
如何在onclick函数中加上单引号?
How to put single quotes to the onclick function?
问:
我的代码在这里 printNextPeriod(新日期(2019-01-01), 新日期(2020-01-01),26); 需要在日期之间加上单引号
期待喜欢
printNextPeriod(new Date('2019-01-01'), new Date('2020-01-01'),26);
我需要在哪里从下面的代码中修复此错误?
if (data == 'pestcontrol') {
return ('<button onclick="printNextPeriod(new Date('+row["first_job_dt"]+'), new Date('+row["end_date"]+'),'+row["day_bw_job"]+');" data-jobdays="'+ row["day_bw_job"] +'" data-fjd="'+ row["first_job_dt"] +'" data-actiendcontr="'+ row["end_date"] +'" class="btn btn-success btn-sm actpest" data-target="#viewactipestmodal" data-keyboard="false" data-backdrop="static" data-toggle="modal">View Schedule-P</button>');
}
DataTable 中的这些代码
{
"data" : "pest_or_clean",
"bSortable": false,
render: function (data, type, row, rowData) {
//console.log(data);
if (data == 'pestcontrol') {
return ('<button onclick="printNextPeriod(new Date('+row["first_job_dt"]+'), new Date('+row["end_date"]+'),'+row["day_bw_job"]+');" data-jobdays="'+ row["day_bw_job"] +'" data-fjd="'+ row["first_job_dt"] +'" data-actiendcontr="'+ row["end_date"] +'" class="btn btn-success btn-sm actpest" data-target="#viewactipestmodal" data-keyboard="false" data-backdrop="static" data-toggle="modal">View Schedule-P</button>');
}
else {
return ('<button data-jobdays="'+ row["day_bw_job"] +'" data-fjd="'+ row["first_job_dt"] +'" data-actiendcontr="'+ row["end_date"] +'" class="btn btn-success btn-sm actclean" data-target="#viewacticleanmodal" data-keyboard="false" data-backdrop="static" data-toggle="modal">View Schedule-C</button>');
}
}
}
答:
1赞
Barmar
8/22/2019
#1
使用转义引号。
if (data == 'pestcontrol') {
return ('<button onclick="printNextPeriod(new Date(\''+row["first_job_dt"]+'\'), new Date(\''+row["end_date"]+'\'),'+row["day_bw_job"]+');" data-jobdays="'+ row["day_bw_job"] +'" data-fjd="'+ row["first_job_dt"] +'" data-actiendcontr="'+ row["end_date"] +'" class="btn btn-success btn-sm actpest" data-target="#viewactipestmodal" data-keyboard="false" data-backdrop="static" data-toggle="modal">View Schedule-P</button>');
}
如果您使用 ES6 模板文字,那就更简单了。此外,当对象中的属性名称是文字时,您可以编写而不是更详细的 .variable.prop
variable["prop"]
if (data == 'pestcontrol') {
return (`<button onclick="printNextPeriod(new Date('${row.first_job_dt}'), new Date('${row.end_date}'),${row.day_bw_job}');" data-jobdays="${row.day_bw_job}" data-fjd="${row.first_job_dt}" data-actiendcontr="${row.end_date}" class="btn btn-success btn-sm actpest" data-target="#viewactipestmodal" data-keyboard="false" data-backdrop="static" data-toggle="modal">View Schedule-P</button>`);
}
0赞
Steve
8/22/2019
#2
如何使用模板文字(模板字符串)?这些真的很好。由于它们被 back-ticks() 括起来,因此您不会遇到面临的单/双引号问题。``
模板文字也可以包含占位符,这些占位符由美元符号和大括号 () 表示。${expression}
- 不再凌乱
'string' + variable + 'string'
- 相反,您可以这样做
`string ${variable} string`
查看下面的代码片段,我在对象中加入了一些虚构的日期以传递给函数。
当然,唯一需要注意的是,这些是 ES6 规范的一部分,不能与 Internet Explorer 一起使用 https://caniuse.com/#feat=template-literals
如果必须使用 IE,则需要使用反斜杠 () 进行转义,该单引号实际上是字符串的一部分,如下所示:\
'(new Date(\''+row["first_job_dt"]+'\')'
var row = {
first_job_dt: `2019-01-01`,
end_date: `2019-12-31`,
day_bw_job: `2019-07-07`,
first_job_dt: `2019-05-01`,
}
function test(data) {
if (data == `pestcontrol`) {
return (`<button onclick="printNextPeriod(new Date(${row["first_job_dt"]}), new Date(${row["end_date"]}),${row["day_bw_job"]}');" data-jobdays="${row["day_bw_job"]}" data-fjd="${row["first_job_dt"]}" data-actiendcontr="${row["end_date"]}" class="btn btn-success btn-sm actpest" data-target="#viewactipestmodal" data-keyboard="false" data-backdrop="static" data-toggle="modal">View Schedule-P</button>`);
} else {
return (`<button data-jobdays="${row["day_bw_job"]}" data-fjd="${row["first_job_dt"]}" data-actiendcontr="${row["end_date"]}" class="btn btn-success btn-sm actclean" data-target="#viewacticleanmodal" data-keyboard="false" data-backdrop="static" data-toggle="modal">View Schedule-C</button>`);
}
}
console.log(test(`pestcontrol`));
console.log(test(`otherValue`));
上一个:在chrome扩展程序中选择jQuery名称,多层引号
下一个:隐藏标题中的引号
评论
addEventListener