<html >
<head>
<title>JavaScript Example</title>
<script type="text/javascript">
function greet {
var greet = document.getElementById("greeting");
greet.value="this is dynamic";
</script>
</head>
<body>
<p onmouseover="greet()"> Hello! Welcome to My Page </p>
</html>
此代码有什么问题?
答案 0 :(得分:5)
首先,您尚未关闭greet
功能(缺少结束}
字符)。其次,你错过了函数名后的括号:
function greet() {
//Function body
}
其次,您使用getElementById
尝试获取p
元素的引用,但p
元素没有id
。
第三,greet
变量将包含对p
元素的引用,该元素没有value
属性(例如,input
元素)。如果您尝试更改元素的内容,则可能意味着innerHTML
。
最后,您还没有关闭<body>
元素。 编辑(参见评论) - 这不是问题,但我个人更喜欢关闭它以保持一致性。
您可以在调用时将元素的引用传递给函数,以节省您必须通过id
获取它:
<p onmouseover="greet(this);">Example</p>
和JavaScript:
function greet(elem) {
elem.innerHTML = "Something new";
}
答案 1 :(得分:0)
p元素的ID应为greet,如:
<p onmouseover="greet()" id="greeting"> Hello! Welcome to My Page </p>
,以便在以下位置选择元素ID:
document.getElementById("greeting");
文档可以找到您尝试从HTML文档中选择的标记。
此外,我认为您需要使用“innerHTML”,而不是编辑节点的“value”属性。所以这给了:
<html >
<head>
<title>JavaScript Example</title>
<script type="text/javascript">
function greet {
var greet = document.getElementById("greeting");
greet.innerHTML="this is dynamic";
}
</script>
</head>
</body>
<p onmouseover="greet()" id="greeting"> Hello! Welcome to My Page </p>
</html>
我对JavaScript并不完全熟悉,但我相信它应该可行。
答案 2 :(得分:0)
您可以尝试:
greet = function(elem) {
elem.innerHTML = "Something new";
}
或
greet = function() {
var greet = document.getElementById("greeting");
greet.innerHTML="this is dynamic";
}
当然还有其他提示(例如相关id
元素的<p>
属性以及正确构建HTML)。