你好我有一个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>
任何帮助将不胜感激!谢谢!
答案 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>";