节点一系列操作

简介: 节点一系列操作

父节点操作


// 1. 父节点 parentNode
        var erweima = document.querySelector('.erweima');
        // var box = document.querySelector('.box');
        // 得到的是离元素最近的父级节点(亲爸爸) 如果找不到父节点就返回为 null
        console.log(erweima.parentNode);


子节点的操作


// 2. children 获取所有的子元素节点 也是我们实际开发常用的
        console.log(ul.children);
        console.log(ul.children[0]);
        console.log(ul.children[1]);
        console.log(ul.children[2]);


子节点的第一个元素和最后一个元素

 


// 3. 实际开发的写法  既没有兼容性问题又返回第一个子元素
        console.log(ol.children[0]);
        console.log(ol.children[ol.children.length - 1]);


创建和添加节点


想要添加节点,就必须先创建一个节点,之后将结点追加到开头或者结尾就可以了,注意的是追加到结尾的写法,还有就是需要首先将他的父节点获取过来。


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <ul>
        <li>你好</li>
    </ul>
</body>
<script>
    // 创建元素
    var li = document.createElement('li');
    // 添加到后面
    var ul = document.querySelector('ul') ;
    ul.appendChild(li) ;
    // 追加到最前面
    var lili = document.createElement('li');
    ul.insertBefore(lili , ul.children[0]) ;
</script>
</html>


简易版发布留言案例


这个的核心就是创建li和追加li,就是上面的具体化一下,还有就是将文本框里面的文字内容添加给li。innnerHTML.


<!DOCTYPE html>
<html lang="en">
<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;
        }
    </style>
</head>
<body>
    <textarea name="" id=""></textarea>
    <button>发布</button>
    <ul>
    </ul>
    <script>
        // 获取元素
        var btn = document.querySelector('button');
        var text = document.querySelector('textarea');
        var ul = document.querySelector('ul');
        // 注册 + 函数
        btn.onclick = function () {
            if (text.value == '') {
                alert('你没有输入内容');
            } else {
                var li = document.createElement('li');
                li.innerHTML = text.value ;
                // ul.appendChild(li);
                ul.insertBefore(li , ul.children[0]) ;
            }
        }
    </script>
</body>
</html>


删除留言案例


<!DOCTYPE html>
<html lang="en">
<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;
            text-decoration: none;
            color: red;
        }
    </style>
</head>
<body>
    <textarea name="" id=""></textarea>
    <button>发布</button>
    <ul>
    </ul>
    <script>
        // 获取元素
        var btn = document.querySelector('button');
        var text = document.querySelector('textarea');
        var ul = document.querySelector('ul');
        // 注册 + 函数
        btn.onclick = function () {
            if (text.value == '') {
                alert('你没有输入内容');
            } else {
                var li = document.createElement('li');
                // 在文本域内容去过来的时候,加一个a链接
                li.innerHTML = text.value + "<a href = 'javascrip:;'>删除</a>";
                // ul.appendChild(li);
                ul.insertBefore(li , ul.children[0]) ;
                // 删除元素 - 删除的是当前连接的父亲
                var as = document.querySelectorAll('a');
                // 给每一个小a都要绑定事件
                for ( var i = 0 ; i < as.length ; i ++ ) {
                    as[i].onclick = function () {
                        ul.removeChild(this.parentNode) ;
                    }
                }
            }
        }
    </script>
</body>
</html>


克隆标签


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <ul>
        <li>1</li>
        <li></li>
        <li></li>
    </ul>
    <script>
        var ul = document.querySelector('ul') ;
        // 克隆标签    待克隆的.cloneNode(true) ;
        var lili =  ul.children[0].cloneNode(true);
        // 追加到后面
        ul.appendChild(lili) ;
    </script>
</body>
</html>


相关文章
|
Kubernetes 容器
k8s集群初始化节点
k8s集群初始化节点
122 0
|
2月前
获取节点2-20
获取节点2-20
34 3
|
6月前
|
存储 Python
删除链表节点详解
删除链表节点详解
|
6月前
|
NoSQL 算法 Redis
详解Redis哨兵模式下,主节点掉线而重新选取主节点的流程
所谓选举的过程不是直接选出新的主节点,而是先在哨兵节点中选出 leader ,再由 leader 负责后续主节点的指定。
180 1
|
5月前
|
存储
删除链表的节点
删除链表的节点
29 0
|
数据库
数据库——如何删除树形结构某一节点以及所有子节点
数据库——如何删除树形结构某一节点以及所有子节点
删除链表的中间节点
这个题类似于寻找链表中间的数字,slow和fast都指向head,slow走一步,fast走两步,也许你会有疑问,节点数的奇偶不考虑吗?while执行条件写成fast&&fast->next就OK,不理解可以画个图,自己举个例子就能看懂了。
55 0
节点的创建、添加、删除
节点的创建、添加、删除
105 0
|
JavaScript 前端开发 算法
获取节点的方法
获取节点的方法
115 0
|
JavaScript
节点操作之创建节点
节点操作之创建节点 在实际开发中,我们经常会遇到在用户使用过程中,我们需要动态创建一个文本框,也就是用户在点击某些按钮之后,我们要给这个页面添加一个新的节点。这种操作在节点操作里面叫做创建节点。那么创建节点有哪些方式呢?