js中的触发事件对象event.srcElement与event.target详解

发布时间 - 2026-01-11 00:11:10    点击率:

介绍

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 

js将html的所有控件都看成是一个个对象,通过js的各个属性,就能对其进行操作处理,js里对象的整体结构是树形的结构。一层一层的追溯,即可获取需要的结果。

event.srcElement:表示的当前的这个事件源。

event.srcElement.parentNode:表示当前事件源的父节点。

parentNode:父节点,也就是上一层的节点。可以是任何一个标签。

event.srcElement.firstChild:当前事件的第一个节点,如果节点是input,通过event.srcElement.firstChild.value就可以获取此input的值。

event.srcElement.parentElement:是指在鼠标所在对象的上一个对象。

event.srcElement.children:当前节点下对象的个数,有多个的话就是个数组,如当前节点下有2个input的对象,要获取这两个可以用event.srcElement.children[0] event.srcElement.children[1]分别获取。

常用如下:

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>

结果如图:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# js  # target  # srcelement  # event.srcelement  # event.target  # JS的Event事件对象使用方法  # js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍  # JavaScript事件对象event用法分析  # JavaScript事件Event对象详解(属性、方法、自定义事件)  # 鼠标  # 是指  # 可以用  # 是一个  # 他们的  # 放在  # 第一个  # 就能  # 多个  # 这两个  # 对其  # 任何一个  # 如图  # 这篇文章  # 谢谢大家  # 解决方法  # 我上  # 单击  # 上一层  # 就可以 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: linux top下的 minerd 木马清除方法  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  新三国志曹操传主线渭水交兵攻略  如何在阿里云高效完成企业建站全流程?  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  米侠浏览器网页背景异常怎么办 米侠显示修复  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  如何获取上海专业网站定制建站电话?  Android实现代码画虚线边框背景效果  Laravel如何实现文件上传和存储?(本地与S3配置)  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  Laravel如何实现一对一模型关联?(Eloquent示例)  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  如何选择可靠的免备案建站服务器?  如何快速搭建高效可靠的建站解决方案?  电商网站制作价格怎么算,网上拍卖流程以及规则?  Python文件异常处理策略_健壮性说明【指导】  Laravel如何配置和使用缓存?(Redis代码示例)  再谈Python中的字符串与字符编码(推荐)  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  佛山企业网站制作公司有哪些,沟通100网上服务官网?  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  JavaScript如何实现音频处理_Web Audio API如何工作?  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  javascript基于原型链的继承及call和apply函数用法分析  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  LinuxShell函数封装方法_脚本复用设计思路【教程】  浅谈Javascript中的Label语句  Java类加载基本过程详细介绍  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  如何快速搭建虚拟主机网站?新手必看指南  浅谈javascript alert和confirm的美化  Laravel中的withCount方法怎么高效统计关联模型数量  Laravel怎么上传文件_Laravel图片上传及存储配置  打造顶配客厅影院,这份100寸电视推荐名单请查收  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  Laravel如何实现API资源集合?(Resource Collection教程)  Swift中swift中的switch 语句  详解jQuery停止动画——stop()方法的使用  如何在Ubuntu系统下快速搭建WordPress个人网站?  详解jQuery中基本的动画方法  如何在服务器上配置二级域名建站?  北京网站制作公司哪家好一点,北京租房网站有哪些?  如何获取PHP WAP自助建站系统源码?