Unit07: document 对象 、 事件

image

document对象

JAVAJSD_V01WEBBASICDAY07_003.png

增加

创建新节点

  • document.createElement(elementName)

    • elementName : 要创建的元素标签名称
    • 返回新创建的节点
        //创建新节点
        var newNode = document.createElement("input");
        
        设置节点的信息
        newNode.type = "text";
        newNode.value = "mary";
        newNode.style.color = "red";
    

添加新节点

  • parentNoded.appendChild(newNode)
    • 追加:新节点作为父节点的最后一个子节点添加
  • parentNode.insertBefore(newNode,refNode)
    • refNode:参考节点,新节点位于此节点之前添加
2017-11-09 17-18-19 的屏幕截图.png

JAVAJSD_V01WEBBASICDAY07_008.png

删除

删除节点

  • node.removeChild(childNode)
    • 删除某个子节点
    • chileNode必须是node的字节点

事件

JAVAJSD_V01WEBBASICDAY07_013.png

事件概述

  • 事件:指页面元素状态改变,用户在操作鼠标或键盘时触发的动作

    • 鼠标事件
    • 键盘事件
    • 状态改变事件
  • event对象

    • 事件触发后将会产生一个event对象

事件属性

  • 通过一个事件属性,可以在某个事件发生时对某个元素进行某种操作
JAVAJSD_V01WEBBASICDAY07_016.png

事件定义

  • 在html属性定义中直接处理事件
        <input type="button" value="按钮" onclick="method();">
    
  • js代码中动态定义
        //btnObj为一个按钮对象
        btnObj.onclick = method;
        
        //或
        btnObj.onclick = function(){
            alert("hello");
        }
    
  • 取消事件:onXXX = "return false;"
    <input type="submit" value="删除" onclick="return deleteDate();">
    function deleteData(){
        var result = confirm("确定要删除吗?")
        result result;
    }

event

event对象

  • 任何事件触发后将会产生一个event对象
  • event对象记录事件发生时的鼠标位置、键盘按键状态和触发对象等信息
    • 获得event对象
    • 使用event对象获得相关信息,如单击位置、触发对象等
  • 常用属性:clientX/clientY/cancelBubble等

获取event对象

  • 需要考虑浏览器兼容性

  • IE浏览器

    • js或者html代码中直接使用event
        <p onclick="alert(event.clientX);">p text</p>
        <div onclick= "func();">div text</div>
    
        //IE浏览器
        function func(){
            alert(event.clientX+":"+event.clientY);
        }
    

直接使用event

  • Firfox浏览器

    • html代码中直接使用event
       <p onclick="alert(event.clientX);">p text</p>
    
    • js代码中直接使用event关键字
       <div onclick="func();">div text</div>
    
       //firefox浏览器
       function func(){
           alert(event.clientX+":"+event.clientY);
       }
    

    Firfox浏览器的js代码中不能直接使用event关键字

  • 在HTMLL代码中,在事件句柄定义时,使用event关键字将事件对象作为参数传入方法

        <div onclick="func(event);"></div>
    
        //firefox浏览器
        function func(){
            alert(e.clientX+":"+e.clientY);
        }
    

    可以解决浏览器兼容问题

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function func(e) {
alert(e.clientX + ":" + e.clientY);
}
</script>
</head>
<body>
<p onclick="alert(event.clientX);">p text</p>
<div onclick="func(event);">div text</div>
</body>
</html>
```

使用event对象

  • 对于event对象,经常需要获得事件源
    • 事件源,即触发事件的元素(事件的目标节点)
  • IE浏览器:event.srcElement
  • Firefox浏览器:evern.target
        <div onclick="func(event);">div text</div>
    
        //IE浏览器
        function func(e){
            alert(e.srcElement.nodeName);   //DIV
        }
        
        //firefox浏览器
        function func(e){
            alert(e.target.nodeName);   //DIV
        }
    
        <div onclick="func(event);">div text</div>
    
        //考虑浏览器兼容问题
        function func(e){
            var obj = e.srcElement||e.target;
            alert(obj.nodeName);    //DIV
        }
    
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript">
        //考虑浏览器兼容问题
        function func(e) {
            var obj = e.srcElement || e.target;
            alert(obj.nodeName); //DIV
        }
    </script>
    </head>
    <body>
        <div onclick="func(event);">div text</div>
    </body>
    </html>
    

事件处理机制

事件处理机制

  • 冒泡机制
JAVAJSD_V01WEBBASICDAY07_028.png
        <div style="border:1px solid black;height:100px;" onclick="alert('div');">
            <p style="border:1px solid red;height:50px;" onclick="alert('p');">
                ptext
                <input type="button" value="button1" onclick="alert('button');"/>
            </p>
        </div>
    ```
- 可以取消事件的冒泡
     - event.stopPropagation();
     - event.cancelBubble = true;
```js
    <div style="border:1px solid black;height:100px;" onclick="alert('div');">
        <p style="border:1px solid red;height:50px;" onclick="alert('p');">
            ptext
            <input type="button" value="button1" onclick="event.cancelBubble=true;alert('button');"/>
        </p>
    </div>
    ```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 选择器选择器是jQuery的核心。 事件 动画 扩展
    wyude阅读 568评论 0 1
  • 文/孤鸟差鱼 一个小孩 一个季度 爱一次天
    孤鸟差鱼阅读 218评论 2 5
  • 梦海蓉阅读 1,218评论 0 7
  • 喜欢上做饭是因为:第一,自己做的饭曾屡次受到赞美,这让我很有成就感,而我非常喜欢这种成就感,而且我发现自己竟然特别...
    云是雨的衣阅读 365评论 3 0

友情链接更多精彩内容