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

时间:2011-06-02 20:33:23

标签: php

你好我有一个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无效。< / p>

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

3 个答案:

答案 0 :(得分:4)

你的HTML有问题。

您的PHP输出:

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

显然已被打破。

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

改为使用PHP输出:

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

我会把这些细节作为练习留给读者。

答案 1 :(得分:1)

更改此行:

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

到此:

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

onclick-event必须在“”中,你不需要javascript:-label(但最后一个不应该有所作为,它只是毫无意义)

答案 2 :(得分:0)

使用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>";