JavaScript中event.srcElement与event.target的兼容性与用法详解
本文详细解析JavaScript中event.srcElement与event.target属性的区别及兼容性问题。IE浏览器支持srcElement而Firefox支持target,通过三元运算符可实现跨浏览器兼容。文章列举了获取父节点、子节点、标签名及属性值等常用DOM操作方法,并提供具体代码示例。
event.srcElement与event.target的兼容性处理
介绍
在IE浏览器环境中,event对象包含srcElement属性,但不包含target属性;
在Firefox浏览器环境中,event对象包含target属性,但不包含srcElement属性。尽管名称不同,两者的功能是一致的,均用于获取触发事件的元素;
在Firefox浏览器中,event.target的功能等同于IE浏览器中的 event.srcElement;
解决方法
采用兼容性写法:obj = event.srcElement ? event.srcElement : event.target;
或者:var evtTarget = event.target || event.srcElement;
event.srcElement.id
event.srcElement.tagname
event.srcElement.type
event.srcElement.value
event.srcElement.name
event.srcElement.classname
event.srcElement.parentelement
event.srcElement.getattribute
event.srcElement.children
event.srcElement.lastChild
event.srcElement.ChildNode
event.srcElement.selectedIndex
DOM对象结构与常用属性获取方法
在JavaScript中,HTML的所有控件均被视为对象。通过操作这些对象的属性,可以实现对页面的交互处理。JavaScript中的对象结构呈树状层级,通过逐层追溯即可获取所需的目标元素。
event.srcElement:表示当前触发事件的对象源。
event.srcElement.parentNode:表示当前事件源的父级节点。
parentNode:指代父级节点,即上一层级的节点,可以是任意类型的HTML标签。
event.srcElement.firstChild:表示当前事件触发的第一个子节点。若该节点为input元素,通过event.srcElement.firstChild.value即可获取该input的值。
event.srcElement.parentElement:指代鼠标所在对象的上一个父级对象。
event.srcElement.children:表示当前节点下包含的子对象数量。若存在多个子对象,则返回数组形式。例如,若当前节点下有两个input对象,可通过event.srcElement.children[0] 与event.srcElement.children[1]分别获取这两个对象。
常见DOM操作代码示例
常用操作示例如下:
1、获取父元素标签名:event.srcElement.parentNode.tagName;
<div>
<input type="button" value="父元素标签" onclick="alert(event.srcElement.parentNode.tagName)">
</div>
运行结果:DIV
第一个子标签为:event.srcElement.firstChild
最后一个子标签为:event.srcElement.lastChild
当然也可以使用event.srcElement.children[i]或event.srcElement.ChildNode[i]进行遍历获取。
2、event.srcElement.parentElement指代鼠标所在对象的上一个父级对象。
<table border=1 width="200">
<tr title="tr测试"><td onclick="alert(event.srcElement.parentElement.title)">tr</td></tr>
</table>
3、event.srcElement.tagName 用于获取点击位置对应的标签名称。
4、event.srcElement.title 用于获取当前标签的title属性值。
5、event.srcElement.options[event.srcElement.selectedIndex].value用于获取下拉菜单选中项的值。
例1:
<select name="selectname" onchange="alert(event.srcElement.options[event.srcElement.selectedIndex].value)" >
<option value="1-">1</option>
<option value="2-">2</option>
<option value="3-">3</option>
<option value="4-">4</option>
<option value="5-">5</option>
</select>
例2:
<script>
function a(){
alert("您点击的标记是:" + event.srcElement.tagName)
}
</script>
<body onclick="a()">
点鼠标测试<br> //BODY
<input value='test input'/> //INPUT
<a href=#>test</a> //A
<div>测试div</div> //DIV
<p>测试p</p> //P
<span>测试span</span><br /> //SPAN
<div>
<a href="/" rel="external nofollow" onmouseover="alert(event.srcElement.parentElement.tagName);">放在我上面</a>
//DIV
</body>
例3:
<div id="div_001">
<form id="form_001">
<input type="button" id="button_001_id" name="button_001_Name" value="单击查看"
class="button_001_Class" onclick="Get_srcElement(this)">
</form>
</div>
<script>
function Get_srcElement()
{
var srcElement=""
srcElement += "\n" + "event.srcElement.id : " + event.srcElement.id;
srcElement += "\n" + "event.srcElement.tagName : " + event.srcElement.tagName;
srcElement += "\n" + "event.srcElement.type : " + event.srcElement.type;
srcElement += "\n" + "event.srcElement.value : " + event.srcElement.value;
srcElement += "\n" + "event.srcElement.name : " + event.srcElement.name;
srcElement += "\n" + "event.srcElement.className : " + event.srcElement.className;
srcElement += "\n" + "event.srcElement.parentElement.id : " + event.srcElement.parentElement.id;
srcElement += "\n" + "event.srcElement.parentNode.id : " + event.srcElement.parentNode.id;
srcElement += "\n" + "event.srcElement.getattribute : " + event.srcElement.getAttribute;
alert(srcElement)
}
</script>
运行结果如图所示:

总结
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对本站的支持。
D3.js 处理大规模数据点的性能优化策略
2026-11-05 15:37:25
JS实现网页摄像头实时扫码:结合getUserMedia与jsQR教程
2026-11-05 15:27:28
D3.js v5 迁移到 v7 的 API 变更与注意事项
2026-11-05 11:57:17
使用 animate.js 实现多元素协同的序列动画
2026-11-04 22:27:53
JS拖拽排序时怎么添加平滑动画效果?FLIP技术实战
2026-11-04 10:12:22
