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 相关文章推荐
js设置function参数默认值(适合没有传参情况)
Feb 24 Javascript
浅谈javascript的调试
Jan 28 Javascript
jquery实现两个图片渐变切换效果的方法
Jun 25 Javascript
浅析js中substring和substr的方法
Nov 09 Javascript
同步文本框内容JS代码实现
Aug 04 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
Jan 04 Javascript
使用validate.js实现表单数据提交前的验证方法
Sep 04 Javascript
JS字典Dictionary类定义与用法示例
Feb 01 Javascript
今天,小程序正式支持 SVG
Apr 20 Javascript
如何进行微信公众号开发的本地调试的方法
Jun 16 Javascript
微信小程序语音同步智能识别的实现案例代码解析
May 29 Javascript
Vue中inheritAttrs的使用实例详解
Dec 31 Vue.js
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,ajax实现分页
2008/03/27 PHP
PHP面向对象之旅:深入理解static变量与方法
2014/01/06 PHP
强制PHP命令行脚本单进程运行的方法
2014/04/15 PHP
教你如何开启shopnc b2b2c 伪静态
2014/10/21 PHP
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
2019/04/02 PHP
Laravel中9个不经常用的小技巧汇总
2019/04/16 PHP
尝试在让script的type属性等于text/html
2013/01/15 Javascript
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
js菜单点击显示或隐藏效果的简单实例
2014/01/13 Javascript
Angular设置title信息解决SEO方面存在问题
2016/08/19 Javascript
JS动态生成年份和月份实例代码
2017/02/04 Javascript
基于zepto.js实现手机相册功能
2017/07/11 Javascript
get  post jsonp三种数据交互形式实例详解
2017/08/25 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
2018/04/24 Javascript
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
利用python将pdf输出为txt的实例讲解
2018/04/23 Python
Python smtplib实现发送邮件功能
2018/05/22 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
详解Django-channels 实现WebSocket实例
2019/08/22 Python
python numpy存取文件的方式
2020/04/01 Python
DJango的创建和使用详解(默认数据库sqlite3)
2019/11/18 Python
如何利用Python动态模拟太阳系运转
2020/09/04 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
利用CSS3的特性改变文本选中时的颜色
2013/09/11 HTML / CSS
泰国汽车、火车和轮渡票预订网站:Bus Online Ticket
2017/09/09 全球购物
瑞典时尚服装购物网站:Miinto.se
2017/10/30 全球购物
苏格兰销售女装、男装和童装的连锁店:M&Co
2018/03/16 全球购物
美国汽车零部件和配件网站:CarParts
2019/03/13 全球购物
公司会计岗位职责
2014/02/13 职场文书
意向书范文
2014/03/31 职场文书
节水倡议书
2015/01/19 职场文书
教师工作表现自我评价
2015/03/05 职场文书
刑事申诉状范文
2015/05/20 职场文书
婚庆公司开业主持词
2015/06/30 职场文书