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的一些注意
Dec 06 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
Mar 31 Javascript
jquery拖动插件(jquery.drag)使用介绍
Jun 18 Javascript
写JQuery插件的基本知识
Nov 25 Javascript
AngularJS实现表单验证
Jan 28 Javascript
JSP防止网页刷新重复提交数据的几种方法
Nov 19 Javascript
微信小程序 表单Form实例详解(附源码)
Dec 22 Javascript
canvas实现爱心和彩虹雨效果
Mar 09 Javascript
Vue+Element使用富文本编辑器的示例代码
Aug 14 Javascript
实现elementUI表单的全局验证的方法步骤
Apr 29 Javascript
Vue.js实现大屏数字滚动翻转效果
Nov 29 Javascript
详解vue 组件的实现原理
Nov 12 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
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
Yii2增删改查之查询 where参数详细介绍
2016/08/08 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
laravel配置Redis多个库的实现方法
2019/04/10 PHP
PHP批斗大会之缺失的异常详解
2019/07/09 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
一个用js实现的页内搜索代码
2007/05/23 Javascript
对xmlHttp对象的理解
2011/01/17 Javascript
js实现左侧网页tab滑动门效果代码
2015/09/06 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
2016/06/08 Javascript
基于JS代码实现图片在页面中旋转效果
2016/06/16 Javascript
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
2017/08/25 Javascript
vue系列之动态路由详解【原创】
2017/09/10 Javascript
php 解压zip压缩包内容到指定目录的实例
2018/01/23 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
Vue中的循环及修改差值表达式的方法
2019/08/29 Javascript
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
2020/03/02 Javascript
Javascript中window.name属性详解
2020/11/19 Javascript
js获取图片的base64编码并压缩
2020/12/05 Javascript
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
python函数中return后的语句一定不会执行吗?
2017/07/06 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
python 把列表转化为字符串的方法
2018/10/23 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
2019/06/04 Python
python画微信表情符的实例代码
2019/10/09 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
2020/06/18 Python
关于tf.matmul() 和tf.multiply() 的区别说明
2020/06/18 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
香港草莓网:Strawberrynet香港
2019/05/10 全球购物
学习十八大精神心得体会
2013/12/31 职场文书
2014年物业管理工作总结
2014/11/21 职场文书
2016年先进教师个人事迹材料
2016/02/26 职场文书