天天看点

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作

1. 获取页面元素

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作

1.1 根据ID获取页面元素

console.dir(id名) 可以帮助我们更好的查看里面的属性和方法

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作

注意:返回的是元素对象

1.2 根据标签名获取

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作

返回的对象的集合,以伪数组的形式

1.3 HTML5新增

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作
JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作

1.4 获取body和html元素

<script>
        // 1.获取body 元素
        var bodyEle = document.body;
        console.log(bodyEle);
        console.dir(bodyEle);
        // 2.获取html 元素
        // var htmlEle = document.html;
        var htmlEle = document.documentElement;
        console.log(htmlEle);
    </script>
           

2. 事件三要素

事件源+事件类型+事件处理程序

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作

执行事件的过程

<div>123</div>
    <script>
        // 执行事件步骤
        // 点击div 控制台输出 我被选中了
        // 1. 获取事件源
        var div = document.querySelector('div');
        // 2.绑定事件 注册事件
        // div.onclick 
        // 3.添加事件处理程序 
        div.onclick = function() {
            console.log('我被选中了');
        }
    </script>
           

常见的鼠标操作

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作

3. 操作元素

3.1 改变元素内容

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作

innerText修改文字内容。

<!DOCTYPE html>
<html >

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div,
        p {
            width: 300px;
            height: 30px;
            line-height: 30px;
            color: #fff;
            background-color: pink;
        }
    </style>
</head>

<body>
    <button>显示当前系统时间</button>
    <div>某个时间</div>
    <p>1123</p>
    <script>
        // 当我们点击了按钮,  div里面的文字会发生变化
        // 1. 获取元素 
        var btn = document.querySelector('button');
        var div = document.querySelector('div');
        // 2.注册事件
        btn.onclick = function() {
            // div.innerText = '2019-6-6';
            div.innerHTML = getDate();
        }

        function getDate() {
            var date = new Date();
            // 我们写一个 2019年 5月 1日 星期三
            var year = date.getFullYear();
            var month = date.getMonth() + 1;
            var dates = date.getDate();
            var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
            var day = date.getDay();
            return '今天是:' + year + '年' + month + '月' + dates + '日 ' + arr[day];
        }
        // 我们元素可以不用添加事件
        var p = document.querySelector('p');
        p.innerHTML = getDate();
    </script>
</body>

</html>
           

innerText和innerHtml的区别:

                前者不识别html标签,后者识别html标签

3.2 修改元素属性

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作

3.3 修改表单属性

<!DOCTYPE html>
<html >

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <button>按钮</button>
    <input type="text" value="输入内容">
    <script>
        // 1. 获取元素
        var btn = document.querySelector('button');
        var input = document.querySelector('input');
        // 2. 注册事件 处理程序
        btn.onclick = function() {
            // input.innerHTML = '点击了';  这个是 普通盒子 比如 div 标签里面的内容
            // 表单里面的值 文字内容是通过 value 来修改的
            input.value = '被点击了';
            // 如果想要某个表单被禁用 不能再点击 disabled  我们想要这个按钮 button禁用
            // btn.disabled = true;
            this.disabled = true;
            // this 指向的是事件函数的调用者 btn
        }
    </script>
</body>

</html>
           

3.4 样式属性操作

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作
<!DOCTYPE html>
<html >

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            width: 100px;
            height: 100px;
            background-color: blue;
        }
    </style>
</head>

<body>
    <div></div>
    <script>
        // 1. 获取元素
        var div = document.querySelector('div');
        // 2. 注册事件 处理程序
        div.onclick = function() {
            // div.style里面的属性 采取驼峰命名法 
            this.style.backgroundColor = 'purple';
            this.style.width = '50px';
        }
    </script>
</body>

</html>
           
JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作

4. H5自定义属性

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作

4.1 自定义属性获取

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作

5. 节点操作

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作

5.1 创建节点

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作

5.2 添加节点

在末尾添加

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作

在首部添加

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作
<!DOCTYPE html>
<html >

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <ul>
        <li>123</li>
    </ul>
    <script>
        // 1. 创建节点元素节点
        var li = document.createElement('li');
		
        // 2. 添加节点 node.appendChild(child)  node 父级  child 是子级 后面追加元素  类似于数组中的push
        var ul = document.querySelector('ul');
        ul.appendChild(li);
		
        // 3. 添加节点 node.insertBefore(child, 指定元素);
        var lili = document.createElement('li');
		
		
		// 指定元素指的是针对谁而言,此处children[0]表示的是将此时ul的第一个孩子。下边这行代码表示的是在ul现在的第一个孩子之前插入lili。
        ul.insertBefore(lili, ul.children[0]);

    </script>
</body>

</html>
           

5.3 删除节点

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作
JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作

5.4 删除留言案例

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作
<!DOCTYPE html>
<html >

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        body {
            padding: 100px;
        }
        
        textarea {
            width: 200px;
            height: 100px;
            border: 1px solid pink;
            outline: none;
            resize: none;
        }
        
        ul {
            margin-top: 50px;
        }
        
        li {
            width: 300px;
            padding: 5px;
            background-color: rgb(245, 209, 243);
            color: red;
            font-size: 14px;
            margin: 15px 0;
        }
        
        li a {
            float: right;
        }
    </style>
</head>

<body>
    <textarea name="" id=""></textarea>
    <button>发布</button>
    <ul>

    </ul>
    <script>
        // 1. 获取元素
        var btn = document.querySelector('button');
        var text = document.querySelector('textarea');
        var ul = document.querySelector('ul');
        // 2. 注册事件
        btn.onclick = function() {
            if (text.value == '') {
                alert('您没有输入内容');
                return false;
            } else {
                // console.log(text.value);
                // (1) 创建元素
                var li = document.createElement('li');
                // 先有li 才能赋值
                li.innerHTML = text.value + "<a href='javascript:;'>删除</a>";
                // (2) 添加元素
                // ul.appendChild(li);
                ul.insertBefore(li, ul.children[0]);
                // (3) 删除元素 删除的是当前链接的li  它的父亲
                var as = document.querySelectorAll('a');
                for (var i = 0; i < as.length; i++) {
                    as[i].onclick = function() {
                        // node.removeChild(child); 删除的是 li 当前a所在的li  this.parentNode;
                        ul.removeChild(this.parentNode);
                    }
                }
            }
        }
    </script>
</body>

</html>
           
JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作

5.5 复制节点

JavaScript中的Dom1. 获取页面元素2. 事件三要素3. 操作元素4. H5自定义属性5. 节点操作

继续阅读