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 相关文章推荐
javascript 日历提醒系统( 兼容所有浏览器 )
Apr 07 Javascript
js常用代码段收集
Oct 28 Javascript
JQuery动画和停止动画实例代码
Mar 01 Javascript
js中call与apply的用法小结
Dec 28 Javascript
JQuery实现的图文自动轮播效果插件
Jun 19 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
Jan 06 Javascript
javascript断点调试心得分享
Apr 23 Javascript
JavaScript数组方法总结分析
May 06 Javascript
jQuery使用ajax跨域获取数据的简单实例
May 18 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
Feb 10 Javascript
JavaScript中常用的简洁高级技巧总结
Mar 10 Javascript
Vue 2.0双向绑定原理的实现方法
Oct 23 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
如何使用脚本模仿登陆过程
2006/11/22 PHP
php下封装较好的数字分页方法
2010/11/23 PHP
在PHP中设置、使用、删除Cookie的解决方法
2013/05/06 PHP
php设计模式之策略模式应用案例详解
2019/06/17 PHP
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
javascript模拟select,jselect的方法实现
2012/11/08 Javascript
使用Jquery实现点击文字后变成文本框且可修改
2013/09/21 Javascript
详细解读JavaScript的跨浏览器事件处理
2015/08/12 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
2016/08/05 Javascript
JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
2016/11/01 Javascript
node.js报错:Cannot find module 'ejs'的解决办法
2016/12/14 Javascript
javascript 组合按键事件监听实现代码
2017/02/21 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
2018/12/05 Javascript
JavaScript Tab菜单实现过程解析
2020/05/13 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
在Python的Django框架中为代码添加注释的方法
2015/07/16 Python
Python+MongoDB自增键值的简单实现
2016/11/04 Python
Python 机器学习库 NumPy入门教程
2018/04/19 Python
Python迭代器协议及for循环工作机制详解
2020/07/14 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
Django Model层F,Q对象和聚合函数原理解析
2020/11/12 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
HTML5离线缓存Manifest是什么
2016/03/09 HTML / CSS
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
全天然狗零食:Best Bully Sticks
2016/09/22 全球购物
英国快时尚女装购物网站:PrettyLittleThing
2018/08/15 全球购物
Michael Kors英国官网:美国奢侈品品牌
2019/11/13 全球购物
保险公司早会主持词
2014/03/22 职场文书
大学中国梦演讲稿
2014/04/23 职场文书
高中美术教师事迹材料
2014/08/22 职场文书
80后创业总结的9条职场用人思想,记得收藏
2019/08/13 职场文书
python基础之模块的导入
2021/10/24 Python
Python Flask搭建yolov3目标检测系统详解流程
2021/11/07 Python