Javascript方法参数转义

时间:2015-01-16 10:41:10

标签: javascript

包含onclick事件的以下范围标记无效

var test="<span onClick="gotoNode(\'' + result.name + '\',\'' + result.xaxis + '\',\'' + result.yaxis + '\',\'' + result.detail + '\',\'' + result.status + '\')" />"

上面的转义字符串在方法调用方面存在一些问题。

我该如何解决?

2 个答案:

答案 0 :(得分:0)

你使用php生成输出吗?

然后你应该试试

echo "<input type=\"button\" onClick=\"gotoNode(\" + result.name + \",\" + 
result.xaxis + \",\" + result.yaxis + \",\" + result.detail + \",\" + 
result.status + \")\" />";

答案 1 :(得分:0)

如果您在JavaScript中创建此元素以创建元素,则需要转义第一个单引号。

&#13;
&#13;
function gotoNode(name, xaxis, yaxis, detail, status) {
  alert("name = " + name + "\r\nxaxis = " + xaxis + "\r\nyaxis = " + yaxis + "\r\ndetail = " + detail + "\r\nstatus = " + status);
}

var result = { name: "name", xaxis: "xaxis", yaxis: "yaxis", detail: "detail", status: "status" };

var htmlText = '<input value="Button" type="button" onclick="gotoNode(\'' + result.name + '\',\'' + result.xaxis + '\',\'' + result.yaxis + '\',\'' + result.detail + '\',\'' + result.status + '\')" />';

$("#lonely").append(htmlText);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="lonely"></div>
&#13;
&#13;
&#13;

一般来说,无论你开始使用什么类型的引号('"),你都需要转义你想要在字符串中使用的相同类型,而不是将相同的类型转义为终止字符串。你可以保留其他类型而不逃避。

对于您的编辑版本,如果您希望将这些结果变量替换为其值,则此功能应该有效。

var test = "<span onclick=\"gotoNode('" + result.name + "','" + result.xaxis + "','" + result.yaxis + "','" + result.detail + "','" + result.status + "')\" />";