【JavaScript】DOM(二)

1.DOM HTML

在这里插入图片描述

1.1 增加(末尾加入)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>添加子节点</title>
    <style type="text/css">
        ul li {
            background-color: lightblue;
            display: inline;
            margin-right: 20px;
        }
        button {
            margin-left: 40px;
        }
    </style>
    <script type="text/javascript">
        window.onload = function(){
            var button = document.getElementsByTagName("button")[0];
            button.onclick = function(){
                var newLi = document.createElement("li");
                var newText = document.createTextNode("广州");
                newLi.appendChild(newText);
                var ulHtml = document.getElementsByTagName("ul")[0];
                ulHtml.appendChild(newLi);
            }
        }
    </script>
</head>
<body>
    <form>
        <ul id="city">
            <li id="beijing">北京</li>
            <li id="shanghai">上海</li>
            <li id="shenzhen">深圳</li>
            <li id="KongHong">香港</li>            
        </ul>
    </form>
    <button value="添加城市">添加城市</button>
</body>
</html>

请添加图片描述

1.2增加(插入)

在这里插入图片描述

<script type="text/javascript">
    window.onload = function(){
        var button = document.getElementsByTagName("button")[0];
        button.onclick = function(){
        var newLi = document.createElement("li");
        var newText = document.createTextNode("广州");
        newLi.appendChild(newText);
        var oldNode = document.getElementById("shanghai");
        var ulHtml = document.getElementsByTagName("ul")[0];
        ulHtml.insertBefore(newLi, oldNode);
     }
}
</script>

在这里插入图片描述

1.3 修改

在这里插入图片描述

window.onload = function() {
	var button = document.getElementsByTagName("button")[0];
    button.onclick = function(){
        var newLi = document.createElement("li");
        var newText = document.createTextNode("广州");
        newLi.appendChild(newText);
        var oldNode = document.getElementById("shanghai");
        var ulHtml = document.getElementsByTagName("ul")[0];
        ulHtml.replaceChild(newLi, oldNode);
    }
}

在这里插入图片描述

1.4 删除

在这里插入图片描述
在这里插入图片描述

1.5另一种操作DOM的方法

    <script type="text/javascript">
        window.onload = function(){
            var button = document.getElementsByTagName("button")[0];
            button.onclick = function(){
                var city = document.getElementById("shenzhen");
                city.innerHTML = "东京";
            }
        }
    </script>

在这里插入图片描述

    <script type="text/javascript">
        window.onload = function(){
            var button = document.getElementsByTagName("button")[0];
            button.onclick = function(){
                var city = document.getElementById("city");
                city.innerHTML += "<li>东京</li>";
            }
        }
    </script>

在这里插入图片描述

2.DOM CSS

2.1操作内联样式

元素.style.样式(只能获取内联样式)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>cssDemo</title>
    <style type="text/css">
        #container {
            width: 200px;
            height: 200px;
            background-color: blue;
        }
    </style>
    <script type="text/javascript">
        window.onload = function(){
            var button = document.getElementById("button");
            button.onclick = function(){
                var container = document.getElementById("container");
                container.style.backgroundColor = "red";
            }
        }
    </script>
</head>
<body>
    <div id="container"></div><br/><br/>
    <button id="button">改变样式</button>
</body>
</html>

在这里插入图片描述

2.2获取元素的样式

在这里插入图片描述

    <script type="text/javascript">
        window.onload = function(){
            var box = document.getElementById("container");
            var button = document.getElementById("button");
            button.onclick = function(){
                alert(getComputedStyle(box, null).backgroundColor);
            }
        }
    </script>

在这里插入图片描述
我们可以进一步将它封装成函数,供我们方便调用。

    <script type="text/javascript">
        window.onload = function(){
            var box = document.getElementById("container");
            var button = document.getElementById("button");
            button.onclick = function(){
                alert(getElementStyle(box, "width"));
            }
            var getElementStyle = function(obj, name) {
                return getComputedStyle(obj, null)[name];
            }
        }
    </script>

3.事件

3.1事件对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件</title>
    <style type="text/css">
        #box1 {
            width: 250px;
            height: 250px;
            border: solid;
        }
        #box2 {
            width: 250px;
            height:50px;
            border: solid;
        }
    </style>
    <script type="text/javascript">
        window.onload = function(){
            var box1 = document.getElementById("box1");
            var box2 = document.getElementById("box2");
            box1.onmousemove = function(event){
                var x = event.clientX;
                var y = event.clientY;
                box2.innerHTML = "x = " + x + "y = " + y;
            }
        }
    </script>
</head>
<body>
    <div>
        <div id="box1"></div><br/><br/>
        <div id="box2"></div>
    </div>
</body>
</html>

在这里插入图片描述

3.2 Div跟随鼠标

在这里插入图片描述
请添加图片描述

3.3事件冒泡

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>demo9</title>
    <style type="text/css">
        #box1 {
            width: 300px;
            height: 300px;
            background-color: blue;
        }
        #box2 {
            width: 50px;
            height: 50px;
            background-color: red;
            position: absolute;
        }
    </style>
    <script type="text/javascript">
        window.onload = function(){
            var box2 = document.getElementById("box2");
            document.onmousemove = function(event){
                var left = event.clientX;
                var top = event.clientY;
                box2.style.left = left + "px";
                box2.style.top = top + "px";
            };
        }
    </script>
</head>
<body>
    <div id="box1"></div>
    <div id="box2"></div>
</body>
</html>

在这里插入图片描述
我们来分析一下程序,当鼠标在空白区域地时候,触发了document的事件,但是当鼠标进入蓝色区域,并没有直接触发document事件,应为鼠标事件在蓝色区域中,但是因为有了事件冒泡,所以这个事件会一层一层往上直到触发document事件。我们可以通过event.cancelBubble = true来取消事件冒泡。

    <script type="text/javascript">
        window.onload = function(){
            var box2 = document.getElementById("box2");
            document.onmousemove = function(event){
                var left = event.clientX;
                var top = event.clientY;
                box2.style.left = left + "px";
                box2.style.top = top + "px";
            };
            var box1 = document.getElementById("box1");
            box1.onmousemove = function(event){
                event.cancelBubble = true;
            }
        }
    </script>

在这里插入图片描述

3.4 事件的委派

在这里插入图片描述

3.5 事件的绑定

我们之前的方法:对象.onclick = function(){}
一个元素只能绑定一个函数,如果我们想要一次绑定多个函数,我们需要使用下面的方法。

在这里插入图片描述在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>demo10</title>
    <script type="text/javascript">
        window.onload = function() {
            var button = document.getElementById("button");
            button.addEventListener("click", function(){
                alert(1);
            }, false);
            button.addEventListener("click", function(){
                alert(2);
            }, false);
        }
    </script>
</head>
<body>
    <button id="button" value="按钮">按钮</button>
</body>
</html>

在这里插入图片描述

3.6 事件的传播

在这里插入图片描述

在这里插入图片描述

作者:Beyong    
出处:Beyong博客
github地址:https://github.com/beyong2019

本博客中未标明转载的文章归作者Beyong有,欢迎转载,但未经作者同意必须保留此段声明,且在文章明显位置给出原文连接,否则保留追究法律责任的权利。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值