我有这个heredoc代码:
$col_formatter = <<<COLFORMATTER
function(cellvalue, options, rowObject){
var tracking = rowObject[5];
var Tes = tracking;
return '<input type="button" value="Open" onclick="btnOpen('+tracking+')">';
}
COLFORMATTER;
但我似乎无法将跟踪变量传递给btnOpen js函数。
例如,跟踪的值是“marsha”。当我用Mozilla Firebug测试它时,它告诉我:
ReferenceError: Marsha is not defined
btnOpen(Marsha)
我认为当我传递它时我必须放一个引号,以便将Marsha读作字符串而不是变量。我知道如何引用引用的一件事是在它之前添加一个反斜杠(\'):
return '<input type="button" value="Open" onclick="btnOpen(\''+tracking+'\')">';
但这也不起作用。它说:
SyntaxError: missing ; before statement
...e=\"Open\" onclick=\"btnOpen(\\''+tracking+'\\')\">';}},{"name":"status"...
为什么?
答案 0 :(得分:0)
反斜杠是escape character,用于表示具有特殊含义的序列,或相反(在您的情况下)暗示string-literal字符,否则将被解释为语言构造的一部分。
转义在许多语言中很常见,您必须记住,您正在通过(看起来像) PHP 脚本构建一个javascript表达式 - 该字符在两者中都有意义。
所以...如果你想在你的字符串中打印文字\
,你将不得不逃避它:
... onclick="btnOpen(\\''+tracking+'\\')" ...