window.event.srcElement与window.event.target 都是指向触发事件的元素,它是什么就有什么样的属性

srcElement是事件初始化目标html元素对象引用,因为事件通过元素层次冒泡,可以在任意一层进行处理,

有了元素的引用,就可以读写改元素的属性。

IE浏览器支持window.event.srcElement , 而firefox支持window.event.target;

  我们先看一个简单的例子:

<input type="text" οnblur="alert(this.value)"/>完全没有问题,能弹出框内容是text文本框里的文本内容。

   fuction method(){

       alert(this.value);}

<input type="text" οnblur="method()"/>这个就不可以,弹出框的内容是undefined,因为method()被响应函数调用的函数。

                                                             也就是说,当描述某个事件时,直接想要获得该事件目标元素的value值是不行的,

                                                             这时候就需要先获取目标元素,再提取之中的value值。

可以做如下改动:

      方法一:先使用this指向触发该onblur事件的目标元素,再提取之中的value值,代码如下

                  function method(this){alert(this.value);}

      方法二:先通过window.event.srcElement(IE浏览器支持)或者window.event.target(FireFox浏览器支持)先指向触发该onblur事件的目标元素,再提                   取之中的value值,代码如下

                  function method(){alert(window.event.srcElement.value);}

                  <input type="text" οnblur="method()"/>

下面再看一个复杂点的例子

<html>

<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>

<script type="text/javascript">
        function InitEvent() {
            var inputs = document.getElementsByTagName_r("input");
            for (var i = 0; i < inputs.length; i++) {
               inputs[i].onblur = OnblurEvent;
            }
        }

function OnblurEvent() {
            // OnblurEvent是onblur的响应函数,而不是被响应函数调用的函数
            // 所以可以用this来获取发生事件的对象
            if (this.value.length > 0) {
                this.style.backgroundColor = "white";
            }
            else {
                this.style.backgroundColor = "red";
            }
        }
    </script>

<body οnlοad="InitEvent()">

<input id="Text1" type="text" />

    <input id="Text2" type="text" />

    <input id="Text3" type="text" />
</body>
</html>

执行后,可以看到若在文本框内键入文本内容,失去焦点时文本框背景颜色为白色不变,但若文本框内没有文本内容就失去焦点,则背景颜色变为红色。

  

转载于:https://www.cnblogs.com/xiangxiao/p/4714833.html

Javascript中target事件属性,事件的目标节点的获取。相关推荐

  1. JavaScript中的拖拽事件且限制出界

    JavaScript中的拖拽事件限制出界 JavaScript事件中很多都会用到拖拽,而在现实中很多拖拽是会限制在浏览器界面禁止出界的,下面是封装好的限制出界的拖拽事件. function drag( ...

  2. 在 JavaScript 中访问对象属性的 3 种方法

    您可以通过 3 种方式访问 JavaScript 中对象的属性: 点属性访问器:object.property 方括号属性访问:object['property'] 对象解构:const { prop ...

  3. 删除javaScript中对象的属性

    删除javaScript中对象的属性 语法 delete 对象.属性;

  4. javascript中mouseover和mouseout事件详解

    原文链接:http://blog.sina.com.cn/s/blog_468530a60101awlw.html   与 mouseenter 事件不同,不论鼠标指针穿过被选元素或其子元素,都会触发 ...

  5. JavaScript中的Event(事件)详解

    Event 对象 Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态. 事件通常与函数结合使用,函数不会在事件发生前被执行! 事件句柄 (Event ...

  6. JavaScript中的点击事件

    1.自动触发一个元素的点击事件 $('#btn').click(); 2.为某个元素添加点击事件:推荐使用第一种 第一种方式:使用JQuery,为其绑定点击事件 <body><p&g ...

  7. JavaScript中window对象属性,时间等的总结

    Window对象是客户端javascript最高层对象之一,只要打开浏览器窗口,不管该窗口中是否有打开的网页,当遇到BODY.FRAMESET或 FRAME元素时,都会自动建立window对象的实例. ...

  8. JavaScript 中对象的属性类型

    对象的属性类型 JavaScript 中的对象的属性包括数据属性和访问器属性,在 JavaScript 引擎的内部实现中定义了用于描述属性(property)的特性(attribute).规范中将特性 ...

  9. html中的js作用,javascript中的innerHTML属性有什么作用

    innerHTML在javaScript中具有双向功能,一是可以从指定的元素对象中获取内容,二是可以把自定义内容插入到指定的元素对象中去. 定义和用法 innerHTML属性用于设置或返回指定标签之间 ...

  10. JavaScript中实现私有属性的写类方式(2)

    上一篇写了个工具函数$class,这篇再完善以下.实现以下功能 1,继承 2,子类继承父类时,不继承父类的私有属性 /*** @param {String} className* @param {St ...

最新文章

  1. 20175310 《Java程序设计》第11周学习总结
  2. C语言实现常用数据结构——队列
  3. android画廊效果的轮播图,轮播图(3d画廊效果)
  4. Python中的迭代遍历 for in
  5. SQLite VC环境搭建
  6. 你知道你常用的dos和linux命令吗?
  7. Java多线程的4种实现方式
  8. play框架配置 拦截器_如何使用Play框架为https配置SSL证书
  9. fcpx插件:Beautiful Slideshow - 时尚简洁图片幻灯片开场
  10. 史上首个人脸识别禁令出台,警察用来抓罪犯也不行!旧金山可真行
  11. python怎么读write_python中write方法是如何使用?
  12. JavaScript JSON 对象使用详解、JSON. parse()、JSON. stringify()
  13. matlab 特征选择算法,特征选择、特征提取matlab算法实现(模式识别)
  14. Python-Telnet连接工具类
  15. 关于输入法图标消失 只能输入英文 win10 语言选项 键盘那里显示 输入法仅桌面的解决办法
  16. Android手机号码归属地查询
  17. 漂亮的LightBox图片画廊插件开发
  18. c语言出现错误c1083,DES 算法,出现异常:fatal error C1083: Cannot open include file: 'des_encode.h'...
  19. 速成PPTC(自恢复保险丝)选型
  20. 开源ios街机模拟器

热门文章

  1. struts2对action的搜索规则
  2. 用Visual C#做DLL文件
  3. 一步步打造漂亮的新闻列表(无刷新分页、内容预览)(4)
  4. 浅议DAS、NAS、SAN三种存储架构
  5. 1.1.1 概念、组成、功能和分类
  6. 使用神经网络摸你加法器
  7. jittor和pytorch网络对比之context_encoder
  8. pytorch ctcloss 参数详解
  9. 跳出数据计算拯救人工智能之分布式逻辑
  10. dayjs 源码解析(一)(api)