onclick 时出现“未捕获的语法错误:输入意外结束”

Efb*_*fbi 1 javascript jquery

我的功能有问题onclick

这是我的代码:

$('ul.listing').append('<button onclick="openInApp("test")"  class="btn btn-primary">Edit <i class="fa fa-external-link" aria-hidden="true"></i></button>');
Run Code Online (Sandbox Code Playgroud)

当我单击该按钮时,出现“ Unexpected end of input”错误消息。我也尝试像这样传递变量:

$('ul.listing').append('<button onclick="openInApp('+ edit_url +')"  class="btn btn-primary">Edit <i class="fa fa-external-link" aria-hidden="true"></i></button>');
Run Code Online (Sandbox Code Playgroud)

我收到以下消息:Uncaught SyntaxError: missing ) after argument list

这两个错误都以“(”开始

我有另一个函数(总是在附录中):

 $('ul.listing').append('<a href="event-details.html" onclick="saveEventID(' + data[i].ID + ');">')
Run Code Online (Sandbox Code Playgroud)

而且效果很好

我不明白

小智 5

要将字符串嵌套在 onclick 中,您可以像下面那样执行,其中使用反斜杠转义单引号以防止它终止字符串。

$('ul.listing').append('<button onclick="openInApp(\'test\')"  class="btn btn-primary">Edit <i class="fa fa-external-link" aria-hidden="true"></i></button>');
Run Code Online (Sandbox Code Playgroud)

处理此问题的另一种方法可以通过单独的数据属性传递字符串来完成:

$('ul.listing').append('<button onclick="openInApp(this)" data-string="yourstringhere" class="btn btn-primary">Edit <i class="fa fa-external-link" aria-hidden="true"></i></button>');
Run Code Online (Sandbox Code Playgroud)

然后在 onclick 函数中访问它,如下所示:

function openInApp(element) {
    var mystring = $(element).data("string");
}
Run Code Online (Sandbox Code Playgroud)