0

我试图在 UI 上的某些功能中返回一个按钮并得到一个奇怪的错误。有人可以帮忙吗。

var div = "<button onclick='javascript:displayDetails('+value1+','+value2+');'>View</button>"

我得到的错误是:

参数列表后缺少 )。

4

3 回答 3

1
 onclick="javascript:displayDetails('+value1+','+value2+');"

Not

 onclick='javascript:displayDetails('+value1+','+value2+');'

Use `` which supports multiple lines instead of '' and to avoid nested "":

const div = `
   <button onclick="javascript:displayDetails('+value1+','+value2+');">
       View
   </button>`;

Not

const div = "<button onclick='javascript:displayDetails('+value1+','+value2+');'>View</button>"

Then you will not need to espace

于 2017-02-07T03:15:18.310 回答
0

最新版本的 JavaScript(ES2015,以前/也称为 ES6)现在支持“模板字符串”,可以帮助避免这种引用/转义的噩梦。使用字符串周围的“反引号”(又名重音符号)来表示模板字符串,以及${value}您希望“插值”(包含)到字符串中的每个值的模板语法:

var div = `<button onclick="javascript:displayDetails(${value1},${value2});">View</button>`;

一般来说,最好选择一个标准,你将在什么时候使用引号。许多现代 JavaScript 样式指南更喜欢用单引号 ( ') 表示普通字符串,而用双引号 ( ") 表示周围的 HTML(或 XML)属性。现在拥有第三种引号机制意味着您不必经常使用反斜杠转义引号 - 很好,因为转义很烦人,容易出错并且不清晰。

于 2017-02-07T03:30:02.057 回答
0

You should escape:

var div = "<button onclick=\"javascript:displayDetails('+value1+','+value2+');\">View</button>"
于 2017-02-07T03:13:51.997 回答