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

Parentheses in string of javascript function call

我有一个循环,它使用 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 来呈现正确的表单。 谢谢

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

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

下面这个片段(来自你的)

`openForm(Example Form...`)

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

强烈建议

代码:

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

HTML显示:

<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);
  });
});