今天在学习其他人代码的时候见到了event.target.nodeName,event.target.dataset。刚开始是一头雾水,便google一下。发现大多数给出的词条都是有关jQuery事件中的target属性,半天也没有找到js中event.target到底还有哪些用法。找着找着就觉得自己怎么这么傻。。for in 一下自己找不就好了。。代码如下:

 <!DOCTYPE html>
 <html>
 <head>
     <title></title>
     <meta charset="utf-8">
 </head>
 <body>
     <button id="btn" class="aichihuamei">爱吃话梅</button>
     <script type="text/javascript">
         var $ = function(id){
             return document.getElementById(id);
         }
         $("btn").onclick = function(event){
             for(var i in event.target){
                 console.log(i+"-------"+event.target[i]);
             }
         }
     </script>
 </body>
 </html>

点击按钮,在控制台中就可以看到event.target的很多属性和方法。我在下列的图中圈出了一些,相信这些不需要详细解释,对应上方代码就可以看出来要怎么使用(哈哈,又多了一种方法)

这次遇到的问题有两个点

一:tagName所对应的的大写;

二:dataset的使用

  这是个非常神奇的东西,先看代码:

 <!DOCTYPE html>
 <html>
 <head>
     <title></title>
     <meta charset="utf-8">
 </head>
 <body>
     <button id="btn" data-a="a" data-b="b" data-c-d-e="cde" class="aichihuamei">爱吃话梅</button>
     <script type="text/javascript">
         var $ = function(id){
             return document.getElementById(id);
         }
         $("btn").onclick = function(event){
             for(var i in event.target){
                 console.log(i+"-------"+event.target[i]);
             }
             console.log(event.target.dataset.a);//a
             console.log(event.target.dataset.b);//b
             console.log(event.target.dataset.cDE);//cde
         }
     </script>
 </body>
 </html>

代码修改的部分已用黄色标出,在标签中加入data-sth,当触发某个事件的时候,可以通过event.target.dataset.sth找到,注意两点,在输入时要忽略"-",除了第一个"-"后的名称,以后的名称都要大写,除了事件调用dataset,还用一种HTMLElement.dataset的用法,其他更多的理解,可以参考以下两篇文章:

https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLElement/dataset

http://blog.csdn.net/yh0205039/article/details/51003317

 

偶遇event.target的更多相关文章

  1. window.event.srcElement与window.event.target 触发事件的元素

    IE浏览器支持window.event.srcElement , 而firefox支持window.event.target:<input type="text" onblu ...

  2. jquery this 和 event.target 区别

    1.this和event.target的区别: js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标DOM元素: 2.this和event.t ...

  3. Javascript中event.srcElement和event.target的区别

    event.srcElement 可以捕获当前事件作用的对象,如event.srcElement.tagName可以捕获活动标记名称.注意获取的标记都以大写表示,如"TD",&qu ...

  4. 【前端】event.target 和 event.currentTarget 的区别

    event.target 和 event.currentTarget 的区别 举例说明: <!DOCTYPE html> <html> <head> <tit ...

  5. event.target指向谁?

    学习中,有时遇到event.target,总是不明白为什么要用target,后来学习了下,大概了解了event.target到底指什么元素了,关于event和this的内容,下回再说: 先摆结论:ev ...

  6. js中event.target

    event.srcElement从字面上可以看出来有以下关键字:事件,源     他的意思就是:当前事件的源, 我们可以调用他的各种属性 就像:document.getElementById(&quo ...

  7. 捕获当前事件作用的对象event.target和event.srcElement

    语法: //返回事件的目标节点(触发该事件的节点). event.target //FF,Chrome event.srcElement //IE 栗子: var oDiv=document.getE ...

  8. js的event.srcElement与event.target(触发事件对象)

    IE下,event对象有srcElement属性,但是没有target属性; Firefox下,event对象有target属性,但是没有srcElement属性.但他们的作用是相当的,即: fire ...

  9. ie9及以下不兼容event.target.dataset对象

    ie9及以下不兼容event.target.dataset对象,请使用event.target.getAttribute('data-xxx')

随机推荐

  1. BZOJ 1497 [NOI2006]最大获利 ——网络流

    [题目分析] 最大权闭合子图. S到集合1容量为获利的大小,集合2到T为所需要付出的相反数. 然后求出最大流,然后用总的获利相减即可. [代码] #include <cstdio> #in ...

  2. Nodejs之目录介绍及app.js说明

    nodejs目录说明,app.js简单介绍及如何设置app.js启动项目. 新建的项目结构应该是这样 bin:项目的启动文件,也可以放其他脚本. node_modules:用来存放项目的依赖库. pu ...

  3. html 转义

    function escapeHTML(n) { var t = document.createElement("div"), i = document.createTextNod ...

  4. dev使用3

    http://www.cnblogs.com/yuerdongni/archive/2012/09/08/2676748.html http://www.cnblogs.com/yuerdongni/ ...

  5. Linux内存布局

    在上一篇博文里,我们已经看到Linux如何有效地利用80x86的分段和分页硬件单元把逻辑地址转换为线性地址,在由线性地址转换到物理地址.那么我们的应用程序如何使用这些逻辑地址,整个内存的地址布局又是怎 ...

  6. js原生设计模式——4安全的工厂方法模式之Factory方法模式

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  7. Xcode 设置文件生成时的模板

    1. 目的 设置 Xcode 生成的文件的格式,如姓名.公司等. 2. 步骤 2.1. 找到文件 step 1. 右键Xcode图标 step 2. 显示包内容 step 3. 找到目录 /Conte ...

  8. IIS安装教程

    IIS安装步骤图解: 1):打开添加删除程序,并选中添加/删除 Windows组件,后双击! 2): 选中并双击添加/删除 Windows组件后,弹出组件安装向导!并可以看到Internet 信息服务 ...

  9. Spring @Aspect实现切面编程

    参考:http://blog.csdn.net/cdl2008sky/article/details/6268628 参考:http://www.360doc.com/content/12/0602/ ...

  10. js数组快速排序

    <script type="text/javascript"> var arr = [1, 2, 3, 54, 22, 1, 2, 3]; function quick ...