如何在heredoc javascript中添加单引号?

时间:2013-11-12 08:53:57

标签: javascript heredoc

我有这个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"...

为什么?

1 个答案:

答案 0 :(得分:0)

反斜杠是escape character,用于表示具有特殊含义的序列,或相反(在您的情况下)暗示string-literal字符,否则将被解释为语言构造的一部分。

转义在许多语言中很常见,您必须记住,您正在通过(看起来像) PHP 脚本构建一个javascript表达式 - 该字符在两者中都有意义。

所以...如果你想在你的字符串中打印文字\,你将不得不逃避它:

... onclick="btnOpen(\\''+tracking+'\\')" ...