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 Demo模态窗口
Dec 06 Javascript
得到jQuery detach()后节点中的某个值实现代码
Feb 05 Javascript
js创建一个input数组并绑定click事件的方法
Jun 12 Javascript
node中socket.io的事件使用详解
Dec 15 Javascript
EasyUi datagrid 实现表格分页
Feb 10 Javascript
jQuery实现切换页面过渡动画效果
Oct 29 Javascript
Bootstarp风格的toggle效果分享
Feb 23 Javascript
浅谈JavaScript中的分支结构
Jul 01 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
Jan 17 Javascript
node.js 利用流实现读写同步,边读边写的方法
Sep 11 Javascript
Fetch超时设置与终止请求详解
May 18 Javascript
微信小程序wxml列表渲染原理解析
Nov 27 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中widget的用法
2014/12/03 PHP
php强制用户转向www域名的方法
2015/06/19 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
php字符串截取函数mb_substr用法实例分析
2019/06/25 PHP
Laravel 添加多语言提示信息的方法
2019/09/29 PHP
游戏人文件夹程序 ver 4.03
2006/07/14 Javascript
通过修改referer下载文件的方法
2008/05/11 Javascript
setTimeout与setInterval在不同浏览器下的差异
2010/01/24 Javascript
jQuery拖拽 &amp; 弹出层 介绍与示例
2013/12/27 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
Javascript操作表单实例讲解(下)
2016/06/20 Javascript
微信小程序 Storage API实例详解
2016/10/02 Javascript
Vue.js第二天学习笔记(vue-router)
2016/12/01 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
three.js实现围绕某物体旋转
2017/01/25 Javascript
javascript过滤数组重复元素的实现方法
2017/05/03 Javascript
express如何使用session与cookie的方法
2018/01/30 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
Vant Weapp组件踩坑:picker的初始赋值解决
2020/11/12 Javascript
Python中的XML库4Suite Server的介绍
2015/04/14 Python
利用Python如何生成随机密码
2016/04/20 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
Python 数值区间处理_对interval 库的快速入门详解
2018/11/16 Python
python如何实现视频转代码视频
2019/06/17 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
FitFlop澳大利亚官网:英国符合人体工学的鞋类品牌
2017/06/05 全球购物
新闻编辑自荐信
2013/11/03 职场文书
幼儿园安全生产月活动总结
2014/07/05 职场文书
网络管理员岗位职责
2015/02/12 职场文书
学子宴致辞大全
2015/07/27 职场文书
承诺书应该怎么写?
2019/09/10 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书
用Java实现简单计算器功能
2021/07/21 Java/Android