jquery 使用JavaScript将onclick事件与参数绑定

wqsoz72f  于 2022-11-22  发布在  jQuery
关注(0)|答案(2)|浏览(178)

我使用JavaScript创建了一个button元素,并将onclick事件绑定到它。我使用了以下代码:

function getElement (rowObject )
       {
          var element ='<div id="deptNmBtn"><button onClick=getDepartMentNm("' +   rowObject.empName+'")> <span>Add</span></button></div>';
          return element;
       }

但是这里我传递了一个参数Employee Name,如果Employee Name作为一个不带空格的字符串传递,那么代码就可以工作,但是如果传递的时候带空格,就会抛出JavaScript错误。
语法错误:未终止的字串常值
有没有人面对过这个错误?任何帮助都将非常感激。

u4dcyp6a

u4dcyp6a1#

需要 使用 ' Package 内联 单击 处理 程序 :

function getElement (rowObject) {
  var element = '<div id="deptNmBtn"><button onClick=\'getDepartMentNm("' +   rowObject.empName + '")\' ><span>Add</span></button></div>';
  return element;
}

中 的 每 一 个
我 的 天 啊

daolsyd0

daolsyd02#

代码中存在引用问题。请尝试以下操作:

var element = '<div id="deptNmBtn"><button onClick="getDepartMentNm(\'' + rowObject.empName + '\')" ><span>Add</span></button></div>';

正如你所看到的,onClick的值是不带引号的。浏览器可以解析不带引号的属性,但是它们应该以一个空格结尾。实际上,你解析的代码看起来像这样:

<button onClick=getDepartMentNm("Employer Name")>

HTML解析器从第一个空格开始剪切函数调用,Name")被忽略,因为它不能被注册为有效的HTML。JavaScript是从“右到左”执行的,JS首先要做的是为函数参数获取一个有效的字符串。现在HTML解析器已经剪切了函数,JS找不到右引号,所以抛出错误。

相关问题