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


Posted in Javascript onMarch 15, 2017

介绍

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中的触发事件对象event.srcElement与event.target详解

总结

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

Javascript 相关文章推荐
ext 代码生成器
Aug 07 Javascript
JavaScript 页面编码与浏览器类型判断代码
Jun 03 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
May 08 Javascript
深入学习JavaScript对象
Oct 13 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
Jan 22 Javascript
利用JS屏蔽页面中的Enter按键提交表单的方法
Nov 25 Javascript
微信小程序 数据交互与渲染实例详解
Jan 21 Javascript
bootstrap轮播图示例代码分享
May 17 Javascript
微信小程序之多文件下载的简单封装示例
Jan 29 Javascript
jQuery niceScroll滚动条错位问题的解决方法
Feb 03 jQuery
完美解决axios在ie下的兼容性问题
Mar 05 Javascript
JS函数内部属性之arguments和this实例解析
Oct 07 Javascript
jQuery动态产生select option下拉列表
Mar 15 #Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
Mar 15 #Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
Mar 15 #Javascript
jQuery实现移动端Tab选项卡效果
Mar 15 #Javascript
利用vue.js插入dom节点的方法
Mar 15 #Javascript
js实现彩色条纹滚动条效果
Mar 15 #Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
Mar 15 #Javascript
You might like
php中session过期时间设置及session回收机制介绍
2014/05/05 PHP
PHP实现自动登入google play下载app report的方法
2014/09/23 PHP
php操作redis缓存方法分享
2015/06/03 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
js整数字符串转换为金额类型数据(示例代码)
2013/12/26 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
javascript中callee与caller的区别分析
2015/04/20 Javascript
jQuery ajax提交Form表单实例(附demo源码)
2016/04/06 Javascript
基于BootstrapValidator的Form表单验证(24)
2016/12/12 Javascript
JS时间控制实现动态效果的实例讲解
2017/07/31 Javascript
Vue仿支付宝支付功能
2018/05/25 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
2018/12/11 jQuery
[47:10]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第二场 12.16
2020/12/18 DOTA
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
Python的装饰器使用详解
2017/06/26 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
Python3 中文文件读写方法
2018/01/23 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
解决python使用list()时总是报错的问题
2020/05/05 Python
Python3 搭建Qt5 环境的方法示例
2020/07/16 Python
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
新加坡网上花店:FlowerAdvisor新加坡
2018/10/05 全球购物
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
母亲节感恩寄语
2014/02/21 职场文书
法人委托书范本
2014/04/04 职场文书
班级学习雷锋活动总结
2014/07/04 职场文书
代办委托书怎么写
2014/08/01 职场文书
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书
导游词之澳门妈祖庙
2019/12/19 职场文书
详解nodejs内置模块
2021/05/06 NodeJs
如何用PHP实现多线程编程
2021/05/26 PHP
React配置子路由的实现
2021/06/03 Javascript
MySQL性能指标TPS+QPS+IOPS压测
2022/08/05 MySQL