javascript函数调用字符串中的括号

时间:2015-06-01 16:07:59

标签: javascript jquery syntax-error parentheses

我有一个循环,它在onClick事件中创建一个带有javascript函数调用的链接,并使用从数据库返回的文本作为参数之一。我遇到的问题是,有时返回的文本中包含括号,导致代码中出现语法错误。 例如:

code:
formResults += "<a onclick='openForm(" + this.displayText + "," + this.ID + ");'>" + this.displayText + "</a>";

HTMLDisplay:
<a onclick="openForm(Example Form (Example Form 1) Application Instructions ,1108);">Example Form (Example Form 1) Application Instructions </a>

正如您所看到的,表单的名称包含一组括号。无论如何我可以包括这些吗?我需要的原因是因为该函数指向另一个使用ID和displayText的系统以呈现正确的形式。 谢谢

2 个答案:

答案 0 :(得分:4)

括号不是问题,而是函数内缺少引号。

formResults += "<a onclick='openForm(\'" + this.displayText + "," + this.ID + "\');'>" + this.displayText + "</a>";

以下摘录(来自你的)

`openForm(Example Form...`)

会抛出错误,因为它正在寻找变量Example等等,引用该字符串!

答案 1 :(得分:2)

我强烈建议

代码:

formResults += '<a class="openForm" data-text="'+this.displayText + '" id="'+this.ID + '">' + this.displayText + '</a>';

HTMLDisplay:

<a class="openForm" data-text="Example Form (Example Form 1) Application Instructions" id="1108">Example Form (Example Form 1) Application Instructions </a>

jQuery的:

$(function() {
  $(".openForm").on("click",function(e) {
    e.preventDefault();
    openForm($(this).data("text"),this.id);
  });
});