如何用变量修改onmouseover文本?代码无法运行求助
你的代码问题排查与修复
我来帮你捋捋代码跑不起来的原因,主要是几个小细节没处理到位:
- 函数参数不能用
var声明:你在定义mouseOver函数时,参数前面加了var,这是语法错误。函数的参数列表直接写变量名就行,不需要用var声明。 - 调用函数时参数未加引号:你在
onmouseover里传的shalom和demo都是字符串,但没加引号的话,JavaScript会把它们当成变量去查找,可你并没有定义这两个变量,所以会触发引用错误。必须把它们改成带引号的字符串形式。 - 多余的
valueOf()调用:str本身就是字符串类型,str.valueOf()完全是多余的操作,直接使用str就可以完成赋值。
下面是修正后的完整代码:
<script> function mouseOver(h1, h2) { var str = h1; document.getElementById(h2).innerHTML = str; } </script> <h2 id="demo" onmouseover="mouseOver('shalom','demo')">שלום</h2>
另外,其实还可以简化一下函数,不用额外声明str变量:
<script> function mouseOver(text, elementId) { document.getElementById(elementId).innerHTML = text; } </script> <h2 id="demo" onmouseover="mouseOver('shalom','demo')">שלום</h2>
内容的提问来源于stack exchange,提问作者Roy Greenberg
相关产品推荐
相关产品推荐

