节点一系列操作

举报
花花叔叔 发表于 2022/08/12 23:55:22 2022/08/12
【摘要】 父节点操作 // 1. 父节点 parentNode var erweima = document.querySelector('.erweima'); // var b...
  1. 父节点操作
// 1. 父节点 parentNode
        var erweima = document.querySelector('.erweima');
        // var box = document.querySelector('.box');
        // 得到的是离元素最近的父级节点(亲爸爸) 如果找不到父节点就返回为 null
        console.log(erweima.parentNode);
  1. 子节点的操作
        // 2. children 获取所有的子元素节点 也是我们实际开发常用的
        console.log(ul.children);
        console.log(ul.children[0]);
        console.log(ul.children[1]);
        console.log(ul.children[2]);
  1. 子节点的第一个元素和最后一个元素
        // 3. 实际开发的写法  既没有兼容性问题又返回第一个子元素
        console.log(ol.children[0]);
        console.log(ol.children[ol.children.length - 1]);
  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>
  1. 简易版发布留言案例

这个的核心就是创建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>
  1. 删除留言案例
<!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>
  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>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>

文章来源: blog.csdn.net,作者:花花叔叔,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_52077949/article/details/120210465

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。