你好,我有一个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>";