在javascript中传递一个带有空格的字符串


pass a string with white space in javascript

你好,我有一个php代码,它通过echo调用带有参数"txt"的javascript函数expand(txt)

echo "<div onclick=javascript:expand('$hint1')>$valueX</div>";

function expand(txt)
{
document.getElementById("targetDiv").value=txt;
}

我的问题是,只有当'$hint1'是一个没有空格的字符串时,这个脚本才能工作,例如,如果$hint="car"一切正常,但如果$hint="red car"javascript不工作。

任何帮助都将不胜感激!谢谢

您的HTML出现故障。

您的PHP输出:

<div onclick=javascript:expand('red car')>sometext</div>

它显然已损坏。

此外,javascript:在这里是多余的;这不是一个URI,而是一个Javascript事件处理程序。

将您的PHP输出改为:

<div onclick="expand('red car')">sometext</div>

我将把细节留给读者练习。

更改此行:

echo "<div onclick=javascript:expand('$hint1')>$valueX</div>";

到此:

echo "<div onclick='"expand('$hint1')'">$valueX</div>";

onclick事件必须在"中,并且您不需要javascript:-标签(但最后一个不应该有什么区别,它只是毫无意义)

使用innerHTML属性来更改div的内容。

document.getElementById("targetDiv").innerHTML = txt;

还要确保您在标记中正确地引用了属性。

echo "<div onclick='"expand('$hint1')'">$valueX</div>";

JS注意:如果您真的想向元素添加一些内容,最好使用textNode:

function expand(el, text) {
  el.appendChild(document.createTextNode(text));
}
// and your markup becomes:
echo "<div onclick='"expand(this, '$hint1')'">$valueX</div>";