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 相关文章推荐
修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
Oct 11 Javascript
JS延时提示框实现方法详解
Nov 26 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
Apr 05 Javascript
Javascript HTML5 Canvas实现的一个画板
Apr 12 Javascript
遍历json 对象的属性并且动态添加属性的实现
Dec 02 Javascript
原生JS实现《别踩白块》游戏(兼容IE)
Feb 20 Javascript
jQuery实现扑克正反面翻牌效果
Mar 10 Javascript
JS 设置Cookie 有效期 检测cookie
Jun 15 Javascript
微信小程序图片自适应支持多图实例详解
Jun 21 Javascript
vue增删改查的简单操作
Jul 15 Javascript
JavaScript插件Tab选项卡效果
Nov 14 Javascript
vue之组件内监控$store中定义变量的变化详解
Nov 08 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 Token(令牌)设计
2008/03/15 PHP
android上传图片到PHP的过程详解
2015/08/03 PHP
php 参数过滤、数据过滤详解
2015/10/26 PHP
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
鼠标滚轴控制文本框值的JS代码
2013/11/19 Javascript
Script标签与访问HTML页面详解
2014/01/10 Javascript
获取中文字符串的实际长度代码
2014/06/05 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
15个非常实用的JavaScript代码片段
2016/12/18 Javascript
javascript使用递归算法求两个数字组合功能示例
2017/01/03 Javascript
javascript添加前置0(补零)的几种方法
2017/01/05 Javascript
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
vue.js实现只能输入数字的输入框
2019/10/19 Javascript
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
python shell根据ip获取主机名代码示例
2017/11/25 Python
Python多重继承的方法解析执行顺序实例分析
2018/05/26 Python
python使用Matplotlib画条形图
2020/03/25 Python
python3学生名片管理v2.0版
2018/11/29 Python
python中的逆序遍历实例
2019/12/25 Python
Python-numpy实现灰度图像的分块和合并方式
2020/01/09 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
django日志默认打印request请求信息的方法示例
2020/05/17 Python
HTML5 video标签(播放器)学习笔记(一):使用入门
2015/04/24 HTML / CSS
美国医疗用品、医疗设备和家庭保健用品商店:Medical Supply Depot
2018/07/08 全球购物
保安员岗位职责
2013/11/17 职场文书
网站开发实习生的自我评价
2013/12/11 职场文书
高二物理教学反思
2014/02/08 职场文书
环保建议书400字
2014/05/14 职场文书
奥巴马上海演讲稿
2014/09/10 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
化工厂员工工作总结
2015/10/15 职场文书
2016基督教会圣诞节开幕词
2016/03/04 职场文书
创业计划书之校园超市
2019/09/12 职场文书
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers