鼠标悬停事件可以用在任何元素上,还是只能用在图像上?
Can the mouseover event be used on any element, or only on images?
<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>
这段代码的问题是什么?
首先,您没有关闭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";
}
p元素应该有一个ID为greet,如:
<p onmouseover="greet()" id="greeting"> Hello! Welcome to My Page </p>
,这样当你选择元素的ID时:
document.getElementById("greeting");
文档可以找到您试图从HTML文档中选择的标记。
此外,而不是编辑节点的"值"属性,我认为你需要使用"innerHTML"代替。这样就得到了:
<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,但我相信它应该可以工作。
您可以尝试:
greet = function(elem) {
elem.innerHTML = "Something new";
}
或
greet = function() {
var greet = document.getElementById("greeting");
greet.innerHTML="this is dynamic";
}
当然还有其他的技巧(比如为相关的<p>
元素添加id
属性和良好的HTML格式)
相关文章:
- 使用 jQuery 从 HTML 中的多个图像元素中删除文件路径
- 将图像元素添加到<a>标签
- 我在jQuery事件处理和隐藏/显示图像元素方面做错了什么
- 将带有图像元素的svg转换为html画布
- 如何获取画布中图像元素的坐标
- jQuery将“x”号图像元素应用于SRC和类
- 使用 DOM 方法删除图像元素
- PHP 中图像元素上的 OnClick 事件不起作用
- 通过 html 图像元素对象显示图像
- 如何将<图像>元素添加到 SVG DOM
- 选择具有特定 src 且没有 alt 标记的所有图像元素
- JavaScript:在键盘插入符号处插入现有图像元素旁边的图像元素
- 如何一次性创建图像元素及其属性
- 在浏览器中移动图像元素
- 将上传的文件添加为 SVG 中的<图像>元素
- 图像元素“清除”背景颜色不起作用
- 为什么画布绘制图像在使用 dom 图像元素时不起作用
- 如何给图像元素一个“;选择“;使用Raphael.js查看
- 关于为Raphaë添加淡入淡出效果的问题;l.js图像元素
- 如何重置图像元素's宽度