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学习笔记记录我的旅程
May 23 Javascript
js判断FCKeditor内容是否为空的两种形式
May 14 Javascript
网页右下角弹出窗体实现代码
Jun 05 Javascript
javascript类型系统 Array对象学习笔记
Jan 09 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
Feb 16 Javascript
浅谈JavaScript的push(),pop(),concat()方法
Jun 03 Javascript
vue2.0全局组件之pdf详解
Jun 26 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
Aug 28 Javascript
Vue.js路由实现选项卡简单实例
Jul 24 Javascript
微信小程序仿今日头条导航栏滚动解析
Aug 20 Javascript
JavaScript canvas仿代码流瀑布
Feb 10 Javascript
javascript局部自定义鼠标右键菜单
Dec 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源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
PHP中比较时间大小实例
2014/08/21 PHP
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
cakephp常见知识点汇总
2017/02/24 PHP
分享5个非常有用的Laravel Blade指令
2018/05/30 PHP
使用js对select动态添加和删除OPTION示例代码
2013/08/12 Javascript
JS实现选中当前菜单后高亮显示的导航条效果
2015/10/15 Javascript
jquery实现图片切换代码
2016/10/13 Javascript
微信公众号菜单配置微信小程序实例详解
2017/03/31 Javascript
vue.js语法及常用指令
2017/10/29 Javascript
浅谈React碰到v-if
2018/11/04 Javascript
React Native中Mobx的使用方法详解
2018/12/04 Javascript
node express使用HTML模板的方法示例
2019/08/22 Javascript
js实现动态时钟
2020/03/12 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
2020/08/14 Javascript
[01:18:35]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第一场 1月29日
2021/03/11 DOTA
Python的ORM框架中SQLAlchemy库的查询操作的教程
2015/04/25 Python
python通过定义一个类实例作为ftp回调方法
2015/05/04 Python
python统计文本文件内单词数量的方法
2015/05/30 Python
python遍历 truple list dictionary的几种方法总结
2016/09/11 Python
Python实现字符串与数组相互转换功能示例
2017/09/22 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
python 对给定可迭代集合统计出现频率,并排序的方法
2018/10/18 Python
Opencv实现抠图背景图替换功能
2019/05/21 Python
pip安装python库的方法总结
2019/08/02 Python
Pandas读取csv时如何设置列名
2020/06/02 Python
canvas裁剪clip()函数的具体使用
2018/03/01 HTML / CSS
Maisons du Monde德国:法国家具和装饰的市场领导者
2019/07/26 全球购物
职业教育毕业生求职信
2013/11/09 职场文书
中学生在校期间的自我评价分享
2013/11/13 职场文书
创建省级文明单位实施方案
2014/02/27 职场文书
闭幕式主持词
2014/04/02 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
战马观后感
2015/06/08 职场文书
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python