0

我有这个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 函数。

例如,tracking 的值为“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"...

这是为什么?

4

1 回答 1

0

反斜杠是一个转义字符,用于表示具有特殊含义的序列,或者相反(在您的情况下)在字符上暗示字符串文字,否则这些字符将被解释为语言结构的一部分。

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

所以......如果你想\在你的字符串中打印一个文字,你也必须将它转义:

... onclick="btnOpen(\\''+tracking+'\\')" ...
于 2013-11-12T09:43:20.107 回答