day25-JavaScript 07 DOM对象

DOM

Document Object Model 文档对象模型

  1. Document :表示的就是整个HTML网页文档;
  2. Object :表示将网页中的每个部分都转换为了一个对象;
  3. Model :表示对象之间的关系,方便获取对象;

节点Node

是一个构成网页最基本属性的组成部分,网页中的每一个部分都可以是一个节点;
节点的类型不同,属性和方法也都不尽相同;

常用节点
  1. 文档节点,整个HTML文档;
  2. 元素节点,HTML文档中的标签;
  3. 属性节点,HTML文档元素的属性;
  4. 文本节点,HTML文档中的文本内容;
节点属性
nodeNodenodeTypenodeValue
文档节点#document9null
元素节点标签名1null
属性节点属性名2属性值
文本节点#text3文本内容

浏览器已经为我们提供文档节点,对象,这个对象就是window属性,可以在页面中直接使用,文档节点代表的是整个网页;

事件

就是文档或浏览器窗口中发生的一些特定的交互瞬间,即用户和浏览器之间的交互行为;
可以在事件对应的属性中设置一些js代码,这样当事件被触发时,这些代码才会被执行,这种写法称为结构行为耦合,不方便维护,不推荐使用;
耦合可以为按钮的对应事件绑定处理函数的形式来响应事件,当事件被触发时,其对应的函数将会被调用;

文档的加载

浏览器在加载一个页面时,是按照自上而下的顺序加载的;
读取到一行就运行一行,如果将script标签写在页面的上面,在执行代码时,页面还没有加载;
文档的加载
将js代码编写到页面的下部是为了可以在页面加载完毕以后在执行js代码;
文档的加载
onload事件会在整个页面加载完成之后才会触发,为window绑定一个onload事件,该事件对应的响应函数将会在页面将在完成之后执行,这样可以确保我们的代码执行时所有的DOM对象已经加载完毕了;

window.onload = function(){

}

onload
在代码执行时,页面还没有加载,页面没有加载DOM对象也没有加载,会导致无法获取DOM对象;

DOM查询

获取元素节点

通过document对象调用

  1. getElementById()通过id属性获取一个元素节点对象;
    getElementById()
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript</title>
    <!-- <link rel="stylesheet" href="../CSS/reset.css"> -->
    <style>
        #zong {
            margin: 150px 100PX;
        }

        .anniu button {
            width: 400px;
            padding: 5px;
            margin: 5px;
            margin-top: 0;
        }

        .zuobu {
            float: left;
        }

        .anniu {
            width: 400px;
            float: left;
        }

        .shangbu {
            width: 400px;
            border: black 2px solid;
        }
        li{
            display: inline-block;
            background-color: cyan;
            padding: 5px;
            border: 1px solid #000;
        }
        p{
            padding-left: 40px;
        }
        .xiabu {
            width: 400px;
            margin-top: 20px;
            height: 100px;
            border: black 2px solid;
        }
    </style>
    <script>
        window.onload = function () {
            //为id为btn01的按钮绑定一个单击响应函数
            var btu001 = document.getElementById("btn01");
            btu001.onclick = function(){
                // 查找#chuntian节点
                var chuntian01 = document.getElementById("chuntian");
                // 可以通过innerHTML这个属性获取html内的代码
                alert(chuntian.innerHTML);
            }

        }

    </script>
</head>

<body>
    <div id="zong">
        <div class="zuobu">
            <!-- 上部 -->
            <div class="shangbu">
                <p>你最喜欢哪个季节?</p>
                <ul id="jijie">
                    <li id="chuntian">春天</li>
                    <li>夏天</li>
                    <li>秋天</li>
                    <li>冬天</li>
                </ul>
                <p>你最喜欢的课程?</p>
                <ul>
                    <li>语文</li>
                    <li>数学</li>
                    <li>物理</li>
                    <li>化学</li>
                    <li>生物</li>
                </ul>
                <p>你正处在哪个阶段?</p>
                <ul>
                    <li>上学</li>
                    <li>工作</li>
                    <li>养老</li>
                </ul>
            </div>
            <!-- 下部 -->
            <div class="xiabu">

            </div>
        </div>
        <!-- 按钮 -->
        <div class="anniu">
            <button id="btn01">查找#chuntian节点</button>
            <button id="btn02">查找所有li节点</button>
            <button id="btn03">查找name=gender的所有节点</button>
            <button id="btn04">查找#jijie下所有li节点</button>
            <button id="btn05">返回#jijie的所有子节点</button>
            <button id="btn06">返回#phone的第一个子节点</button>
            <button id="btn07">返回#chuntian的父节点</button>
            <button id="btn08">返回#Android的前一个兄弟节点</button>
            <button id="btn09">返回#username的value属性值</button>
            <button id="btn10">设置#username的属性值</button>
            <button id="btn11">返回#chuntian的文本值</button>
        </div>
    </div>
</body>

</html>
  1. getElementByTagName()通过标签名获取一组元素节点对象,返回一个类数组,即使查询到的元素只有一个,也会封装到数组中返回;

    getElementByTagName()getElementByTagName()getElementByTagName()getElementByTagName()getElementByTagName()getElementByTagName()getElementByTagName()getElementByTagName()getElementByTagName()getElementByTagName()getElementByTagName()getElementByTagName()getElementByTagName()

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript</title>
    <!-- <link rel="stylesheet" href="../CSS/reset.css"> -->
    <style>
        #zong {
            margin: 150px 100PX;
        }

        .anniu button {
            width: 400px;
            padding: 5px;
            margin: 5px;
            margin-top: 0;
        }

        .zuobu {
            float: left;
        }

        .anniu {
            width: 400px;
            float: left;
        }

        .shangbu {
            width: 400px;
            border: black 2px solid;
        }
        li{
            display: inline-block;
            background-color: cyan;
            padding: 5px;
            border: 1px solid #000;
        }
        p{
            padding-left: 40px;
        }
        .xiabu {
            width: 400px;
            margin-top: 20px;
            height: 100px;
            border: black 2px solid;
        }
    </style>
    <script>
        window.onload = function () {
            //为id为btn01的按钮绑定一个单击响应函数
            var btn001 = document.getElementById("btn01");
            btn001.onclick = function(){
                // 查找#chuntian节点
                var chuntian01 = document.getElementById("chuntian");
                // 可以通过innerHTML这个属性获取html内的代码
                alert(chuntian.innerHTML);
            }

            //为id为btn02的按钮绑定一个单击响应函数
            var btn002 = document.getElementById("btn02");
            btn002.onclick = function(){
                // 查找所有li节点
                //  getElementByTagName()通过标签名获取一组元素节点对象
                // 返回一个类数组,即使查询到的元素只有一个,也会封装到数组中返回
                var li01 = document.getElementsByTagName("li");

                //li01的数组长度
                alert(li01.length);

                for(var i = 0 ;i < li01.length; i++){
                    alert(li01[i].innerHTML);
                }

            }

        }

    </script>
</head>

<body>
    <div id="zong">
        <div class="zuobu">
            <!-- 上部 -->
            <div class="shangbu">
                <p>你最喜欢哪个季节?</p>
                <ul id="jijie">
                    <li id="chuntian">春天</li>
                    <li>夏天</li>
                    <li>秋天</li>
                    <li>冬天</li>
                </ul>
                <p>你最喜欢的课程?</p>
                <ul>
                    <li>语文</li>
                    <li>数学</li>
                    <li>物理</li>
                    <li>化学</li>
                    <li>生物</li>
                </ul>
                <p>你正处在哪个阶段?</p>
                <ul>
                    <li>上学</li>
                    <li>工作</li>
                    <li>养老</li>
                </ul>
            </div>
            <!-- 下部 -->
            <div class="xiabu">

            </div>
        </div>
        <!-- 按钮 -->
        <div class="anniu">
            <button id="btn01">查找#chuntian节点</button>
            <button id="btn02">查找所有li节点</button>
            <button id="btn03">查找name=gender的所有节点</button>
            <button id="btn04">查找#jijie下所有li节点</button>
            <button id="btn05">返回#jijie的所有子节点</button>
            <button id="btn06">返回#phone的第一个子节点</button>
            <button id="btn07">返回#chuntian的父节点</button>
            <button id="btn08">返回#Android的前一个兄弟节点</button>
            <button id="btn09">返回#username的value属性值</button>
            <button id="btn10">设置#username的属性值</button>
            <button id="btn11">返回#chuntian的文本值</button>
        </div>
    </div>
</body>

</html>
  1. getElementByName()通过name属性获取一组元素节点对象;innerHTML通过这个属性可以获取到元素内部的html代码;innerHTML用于获取元素内部的html代码;对于自结束标签这个属性没有意义;
    如果需要读取元素节点属性,直接使用元素.属性名
    注意: class属性不能采用这种方式,读取class属性时需要使用元素.className
    getElementByName()getElementByName()getElementByName()
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript</title>
    <!-- <link rel="stylesheet" href="../CSS/reset.css"> -->
    <style>
        #zong {
            margin: 150px 100PX;
        }

        .anniu button {
            width: 400px;
            padding: 5px;
            margin: 5px;
            margin-top: 0;
        }

        .zuobu {
            float: left;
        }

        .anniu {
            width: 400px;
            float: left;
        }

        .shangbu {
            width: 400px;
            border: black 2px solid;
        }
        li{
            display: inline-block;
            background-color: cyan;
            padding: 5px;
            border: 1px solid #000;
        }
        p{
            padding-left: 40px;
        }
        .xiabu {
            width: 400px;
            margin-top: 20px;
            height: 100px;
            border: black 2px solid;
        }
    </style>
    <script>
        window.onload = function () {
            //为id为btn01的按钮绑定一个单击响应函数
            var btn001 = document.getElementById("btn01");
            btn001.onclick = function(){
                // 查找#chuntian节点
                var chuntian01 = document.getElementById("chuntian");
                // 可以通过innerHTML这个属性获取html内的代码
                alert(chuntian.innerHTML);
            }

            //为id为btn02的按钮绑定一个单击响应函数
            var btn002 = document.getElementById("btn02");
            btn002.onclick = function(){
                // 查找所有li节点
                //  getElementByTagName()通过标签名获取一组元素节点对象
                // 返回一个类数组,即使查询到的元素只有一个,也会封装到数组中返回
                var li01 = document.getElementsByTagName("li");

                //li01的数组长度
                alert(li01.length);

                for(var i = 0 ;i < li01.length; i++){
                    alert(li01[i].innerHTML);
                }

            }

            // //为id为btn03的按钮绑定一个单击响应函数
            var btn003 = document.getElementById("btn03");
            btn003.onclick = function(){
                // 查找name=gender的所有节点
                var gender01 = document.getElementsByName("gender");

                 //gender01的数组长度
                 alert(gender01.length);

                //  对于自结束标签innerHTML没有意义
                // 如果需要读取元素节点属性,直接使用 元素.属性名
                for(var i = 0 ;i < gender01.length; i++){
                    alert(gender01[i].value);
                }
            }
        }

    </script>
</head>

<body>
    <div id="zong">
        <div class="zuobu">
            <!-- 上部 -->
            <div class="shangbu">
                <p>你最喜欢哪个季节?</p>
                <ul id="jijie">
                    <li id="chuntian">春天</li>
                    <li>夏天</li>
                    <li>秋天</li>
                    <li>冬天</li>
                </ul>
                <p>你最喜欢的课程?</p>
                <ul>
                    <li>语文</li>
                    <li>数学</li>
                    <li>物理</li>
                    <li>化学</li>
                    <li>生物</li>
                </ul>
                <p>你正处在哪个阶段?</p>
                <ul>
                    <li>上学</li>
                    <li>工作</li>
                    <li>养老</li>
                </ul>
            </div>
            <!-- 下部 -->
            <div class="xiabu">
                gender:
                <input type="radio" name="gender" value="male" />
                Male
                <input type="radio" name="gender" value="female" />
                Female
                <br>
                <br>
                name:
                <input type="text" name="name" id="username" value="你好呀!!" />

            </div>
        </div>
        <!-- 按钮 -->
        <div class="anniu">
            <button id="btn01">查找#chuntian节点</button>
            <button id="btn02">查找所有li节点</button>
            <button id="btn03">查找name=gender的所有节点</button>
            <button id="btn04">查找#jijie下所有li节点</button>
            <button id="btn05">返回#jijie的所有子节点</button>
            <button id="btn06">返回#phone的第一个子节点</button>
            <button id="btn07">返回#chuntian的父节点</button>
            <button id="btn08">返回#Android的前一个兄弟节点</button>
            <button id="btn09">返回#username的value属性值</button>
            <button id="btn10">设置#username的属性值</button>
            <button id="btn11">返回#chuntian的文本值</button>
        </div>
    </div>
</body>

</html>
获取元素子节点

通过具体的元素节点调用;

  1. getElementByTagName()方法返回当前节点的指定标签后代节点;
    getElementByTagName()getElementByTagName()getElementByTagName()getElementByTagName()getElementByTagName()
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript</title>
    <!-- <link rel="stylesheet" href="../CSS/reset.css"> -->
    <style>
        #zong {
            margin: 150px 100PX;
        }

        .anniu button {
            width: 400px;
            padding: 5px;
            margin: 5px;
            margin-top: 0;
        }

        .zuobu {
            float: left;
        }

        .anniu {
            width: 400px;
            float: left;
        }

        .shangbu {
            width: 400px;
            border: black 2px solid;
        }
        li{
            display: inline-block;
            background-color: cyan;
            padding: 5px;
            border: 1px solid #000;
        }
        p{
            padding-left: 40px;
        }
        .xiabu {
            width: 400px;
            margin-top: 20px;
            height: 100px;
            border: black 2px solid;
        }
    </style>
    <script>
        window.onload = function () {
            //为id为btn01的按钮绑定一个单击响应函数
            var btn001 = document.getElementById("btn01");
            btn001.onclick = function(){
                // 查找#chuntian节点
                var chuntian01 = document.getElementById("chuntian");
                // 可以通过innerHTML这个属性获取html内的代码
                alert(chuntian.innerHTML);
            }

            //为id为btn02的按钮绑定一个单击响应函数
            var btn002 = document.getElementById("btn02");
            btn002.onclick = function(){
                // 查找所有li节点
                //  getElementByTagName()通过标签名获取一组元素节点对象
                // 返回一个类数组,即使查询到的元素只有一个,也会封装到数组中返回
                var li01 = document.getElementsByTagName("li");

                //li01的数组长度
                alert(li01.length);

                for(var i = 0 ;i < li01.length; i++){
                    alert(li01[i].innerHTML);
                }

            }

            //为id为btn03的按钮绑定一个单击响应函数
            var btn003 = document.getElementById("btn03");
            btn003.onclick = function(){
                // 查找name=gender的所有节点
                var gender01 = document.getElementsByName("gender");

                 //gender01的数组长度
                 alert(gender01.length);

                //  对于自结束标签innerHTML没有意义
                // 如果需要读取元素节点属性,直接使用 元素.属性名
                for(var i = 0 ;i < gender01.length; i++){
                    alert(gender01[i].value);
                }
            }

            //为id为btn04的按钮绑定一个单击响应函数
            var btn004 = document.getElementById("btn04");
            btn004.onclick = function(){
                // 查找#jijie下所有li节点
                var jijie01 = jijie.getElementsByTagName("li");

                 //jijie01的数组长度
                alert(jijie01.length);

                for(var i = 0 ;i < jijie01.length; i++){
                    alert(jijie01[i].innerHTML);
                }
            }

        }

    </script>
</head>

<body>
    <div id="zong">
        <div class="zuobu">
            <!-- 上部 -->
            <div class="shangbu">
                <p>你最喜欢哪个季节?</p>
                <ul id="jijie">
                    <li id="chuntian">春天</li>
                    <li>夏天</li>
                    <li>秋天</li>
                    <li>冬天</li>
                </ul>
                <p>你最喜欢的课程?</p>
                <ul>
                    <li>语文</li>
                    <li>数学</li>
                    <li>物理</li>
                    <li>化学</li>
                    <li>生物</li>
                </ul>
                <p>你正处在哪个阶段?</p>
                <ul>
                    <li>上学</li>
                    <li>工作</li>
                    <li>养老</li>
                </ul>
            </div>
            <!-- 下部 -->
            <div class="xiabu">
                gender:
                <input type="radio" name="gender" value="male" />
                Male
                <input type="radio" name="gender" value="female" />
                Female
                <br>
                <br>
                name:
                <input type="text" name="name" id="username" value="你好呀!!" />

            </div>
        </div>
        <!-- 按钮 -->
        <div class="anniu">
            <button id="btn01">查找#chuntian节点</button>
            <button id="btn02">查找所有li节点</button>
            <button id="btn03">查找name=gender的所有节点</button>
            <button id="btn04">查找#jijie下所有li节点</button>
            <button id="btn05">返回#jijie的所有子节点</button>
            <button id="btn06">返回#phone的第一个子节点</button>
            <button id="btn07">返回#chuntian的父节点</button>
            <button id="btn08">返回#Android的前一个兄弟节点</button>
            <button id="btn09">返回#username的value属性值</button>
            <button id="btn10">设置#username的属性值</button>
            <button id="btn11">返回#chuntian的文本值</button>
        </div>
    </div>
</body>

</html>
  1. childNodes属性表示当前所有的子节点;这个属性会获取包括文本节点在内的所有节点,
    childNodes根据DOM标签间的空白也会当成文本节点(IE8一下的浏览器不支持);
  2. childNodes属性表示当前所有的子节点;
    children
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript</title>
    <!-- <link rel="stylesheet" href="../CSS/reset.css"> -->
    <style>
        #zong {
            margin: 150px 100PX;
        }

        .anniu button {
            width: 400px;
            padding: 5px;
            margin: 5px;
            margin-top: 0;
        }

        .zuobu {
            float: left;
        }

        .anniu {
            width: 400px;
            float: left;
        }

        .shangbu {
            width: 400px;
            border: black 2px solid;
        }
        li{
            display: inline-block;
            background-color: cyan;
            padding: 5px;
            border: 1px solid #000;
        }
        p{
            padding-left: 40px;
        }
        .xiabu {
            width: 400px;
            margin-top: 20px;
            height: 100px;
            border: black 2px solid;
        }
    </style>
    <script>
        window.onload = function () {
            //为id为btn01的按钮绑定一个单击响应函数
            var btn001 = document.getElementById("btn01");
            btn001.onclick = function(){
                // 查找#chuntian节点
                var chuntian01 = document.getElementById("chuntian");
                // 可以通过innerHTML这个属性获取html内的代码
                alert(chuntian.innerHTML);
            }

            //为id为btn02的按钮绑定一个单击响应函数
            var btn002 = document.getElementById("btn02");
            btn002.onclick = function(){
                // 查找所有li节点
                //  getElementByTagName()通过标签名获取一组元素节点对象
                // 返回一个类数组,即使查询到的元素只有一个,也会封装到数组中返回
                var li01 = document.getElementsByTagName("li");

                //li01的数组长度
                alert(li01.length);

                for(var i = 0 ;i < li01.length; i++){
                    alert(li01[i].innerHTML);
                }

            }

            //为id为btn03的按钮绑定一个单击响应函数
            var btn003 = document.getElementById("btn03");
            btn003.onclick = function(){
                // 查找name=gender的所有节点
                var gender01 = document.getElementsByName("gender");

                 //gender01的数组长度
                 alert(gender01.length);

                //  对于自结束标签innerHTML没有意义
                // 如果需要读取元素节点属性,直接使用 元素.属性名
                for(var i = 0 ;i < gender01.length; i++){
                    alert(gender01[i].value);
                }
            }

            //为id为btn04的按钮绑定一个单击响应函数
            var btn004 = document.getElementById("btn04");
            btn004.onclick = function(){
                // 查找#jijie下所有li节点
                var jijie01 = jijie.getElementsByTagName("li");

                 //jijie01的数组长度
                alert(jijie01.length);

                for(var i = 0 ;i < jijie01.length; i++){
                    alert(jijie01[i].innerHTML);
                }
            }

            //为id为btn05的按钮绑定一个单击响应函数
            var btn005 = document.getElementById("btn05");
            btn005.onclick = function(){
                // 返回#jijie的所有子节点
                var jijie02 = document.getElementById("jijie");

                //  childNodes属性表示当前所有的子节点;这个属性会获取包括文本节点在内的所有节点
                // var zijiedian = jijie02.childNodes;
                // alert(zijiedian.length);

                var zijiedian = jijie02.children;
                alert(zijiedian.length);

                for(var i = 0 ;i < zijiedian.length; i++){
                    alert(zijiedian[i].innerHTML);
                }
            }

        }

    </script>
</head>

<body>
    <div id="zong">
        <div class="zuobu">
            <!-- 上部 -->
            <div class="shangbu">
                <p>你最喜欢哪个季节?</p>
                <ul id="jijie">
                    <li id="chuntian">春天</li>
                    <li>夏天</li>
                    <li>秋天</li>
                    <li>冬天</li>
                </ul>
                <p>你最喜欢的课程?</p>
                <ul>
                    <li>语文</li>
                    <li>数学</li>
                    <li>物理</li>
                    <li>化学</li>
                    <li>生物</li>
                </ul>
                <p>你正处在哪个阶段?</p>
                <ul>
                    <li>上学</li>
                    <li>工作</li>
                    <li>养老</li>
                </ul>
            </div>
            <!-- 下部 -->
            <div class="xiabu">
                gender:
                <input type="radio" name="gender" value="male" />
                Male
                <input type="radio" name="gender" value="female" />
                Female
                <br>
                <br>
                name:
                <input type="text" name="name" id="username" value="你好呀!!" />

            </div>
        </div>
        <!-- 按钮 -->
        <div class="anniu">
            <button id="btn01">查找#chuntian节点</button>
            <button id="btn02">查找所有li节点</button>
            <button id="btn03">查找name=gender的所有节点</button>
            <button id="btn04">查找#jijie下所有li节点</button>
            <button id="btn05">返回#jijie的所有子节点</button>
            <button id="btn06">返回#phone的第一个子节点</button>
            <button id="btn07">返回#chuntian的父节点</button>
            <button id="btn08">返回#Android的前一个兄弟节点</button>
            <button id="btn09">返回#username的value属性值</button>
            <button id="btn10">设置#username的属性值</button>
            <button id="btn11">返回#chuntian的文本值</button>
        </div>
    </div>
</body>

</html>
  1. firstChild属性表示当前所有的第一个子节点;
    firstChild
    换行空格算文本节点firstChild
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript</title>
    <!-- <link rel="stylesheet" href="../CSS/reset.css"> -->
    <style>
        #zong {
            margin: 150px 100PX;
        }

        .anniu button {
            width: 400px;
            padding: 5px;
            margin: 5px;
            margin-top: 0;
        }

        .zuobu {
            float: left;
        }

        .anniu {
            width: 400px;
            float: left;
        }

        .shangbu {
            width: 400px;
            border: black 2px solid;
        }
        li{
            display: inline-block;
            background-color: cyan;
            padding: 5px;
            border: 1px solid #000;
        }
        p{
            padding-left: 40px;
        }
        .xiabu {
            width: 400px;
            margin-top: 20px;
            height: 100px;
            border: black 2px solid;
        }
    </style>
    <script>
        window.onload = function () {
            //为id为btn01的按钮绑定一个单击响应函数
            var btn001 = document.getElementById("btn01");
            btn001.onclick = function(){
                // 查找#chuntian节点
                var chuntian01 = document.getElementById("chuntian");
                // 可以通过innerHTML这个属性获取html内的代码
                alert(chuntian.innerHTML);
            }

            //为id为btn02的按钮绑定一个单击响应函数
            var btn002 = document.getElementById("btn02");
            btn002.onclick = function(){
                // 查找所有li节点
                //  getElementByTagName()通过标签名获取一组元素节点对象
                // 返回一个类数组,即使查询到的元素只有一个,也会封装到数组中返回
                var li01 = document.getElementsByTagName("li");

                //li01的数组长度
                alert(li01.length);

                for(var i = 0 ;i < li01.length; i++){
                    alert(li01[i].innerHTML);
                }

            }

            //为id为btn03的按钮绑定一个单击响应函数
            var btn003 = document.getElementById("btn03");
            btn003.onclick = function(){
                // 查找name=gender的所有节点
                var gender01 = document.getElementsByName("gender");

                 //gender01的数组长度
                 alert(gender01.length);

                //  对于自结束标签innerHTML没有意义
                // 如果需要读取元素节点属性,直接使用 元素.属性名
                for(var i = 0 ;i < gender01.length; i++){
                    alert(gender01[i].value);
                }
            }

            //为id为btn04的按钮绑定一个单击响应函数
            var btn004 = document.getElementById("btn04");
            btn004.onclick = function(){
                // 查找#jijie下所有li节点
                var jijie01 = jijie.getElementsByTagName("li");

                 //jijie01的数组长度
                alert(jijie01.length);

                for(var i = 0 ;i < jijie01.length; i++){
                    alert(jijie01[i].innerHTML);
                }
            }

            //为id为btn05的按钮绑定一个单击响应函数
            var btn005 = document.getElementById("btn05");
            btn005.onclick = function(){
                // 返回#jijie的所有子节点
                var jijie02 = document.getElementById("jijie");

                //  childNodes属性表示当前所有的子节点;这个属性会获取包括文本节点在内的所有节点
                // var zijiedian = jijie02.childNodes;
                // alert(zijiedian.length);

                var zijiedian = jijie02.children;
                alert(zijiedian.length);

                for(var i = 0 ;i < zijiedian.length; i++){
                    alert(zijiedian[i].innerHTML);
                }
            }

            //为id为btn06的按钮绑定一个单击响应函数
            var btn006 = document.getElementById("btn06");
            btn006.onclick = function(){
                // 返回#jieduan的第一个子节点
                var jieduan01 = document.getElementById("jieduan");

                var diyi = jieduan01.firstChild;

                alert(diyi.innerHTML);

        }

             
    }

    </script>
</head>

<body>
    <div id="zong">
        <div class="zuobu">
            <!-- 上部 -->
            <div class="shangbu">
                <p>你最喜欢哪个季节?</p>
                <ul id="jijie">
                    <li id="chuntian">春天</li>
                    <li>夏天</li>
                    <li>秋天</li>
                    <li>冬天</li>
                </ul>
                <p>你最喜欢的课程?</p>
                <ul>
                    <li>语文</li>
                    <li>数学</li>
                    <li>物理</li>
                    <li>化学</li>
                    <li>生物</li>
                </ul>
                <p>你正处在哪个阶段?</p>
                <ul id="jieduan"><li>上学</li>
                    <li>工作</li>
                    <li>养老</li>
                </ul>
            </div>
            <!-- 下部 -->
            <div class="xiabu">
                gender:
                <input type="radio" name="gender" value="male" />
                Male
                <input type="radio" name="gender" value="female" />
                Female
                <br>
                <br>
                name:
                <input type="text" name="name" id="username" value="你好呀!!" />

            </div>
        </div>
        <!-- 按钮 -->
        <div class="anniu">
            <button id="btn01">查找#chuntian节点</button>
            <button id="btn02">查找所有li节点</button>
            <button id="btn03">查找name=gender的所有节点</button>
            <button id="btn04">查找#jijie下所有li节点</button>
            <button id="btn05">返回#jijie的所有子节点</button>
            <button id="btn06">返回#jieduan的第一个子节点</button>
            <button id="btn07">返回#chuntian的父节点</button>
            <button id="btn08">返回#Android的前一个兄弟节点</button>
            <button id="btn09">返回#username的value属性值</button>
            <button id="btn10">设置#username的属性值</button>
            <button id="btn11">返回#chuntian的文本值</button>
        </div>
    </div>
</body>

</html>
  1. lastChild属性表示当前所有的最后一个子节点;
     lastChild
    换行空格算文本节点 lastChild
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript</title>
    <!-- <link rel="stylesheet" href="../CSS/reset.css"> -->
    <style>
        #zong {
            margin: 150px 100PX;
        }

        .anniu button {
            width: 400px;
            padding: 5px;
            margin: 5px;
            margin-top: 0;
        }

        .zuobu {
            float: left;
        }

        .anniu {
            width: 400px;
            float: left;
        }

        .shangbu {
            width: 400px;
            border: black 2px solid;
        }

        li {
            display: inline-block;
            background-color: cyan;
            padding: 5px;
            border: 1px solid #000;
        }

        p {
            padding-left: 40px;
        }

        .xiabu {
            width: 400px;
            margin-top: 20px;
            height: 100px;
            border: black 2px solid;
        }
    </style>
    <script>
        window.onload = function () {
            //为id为btn01的按钮绑定一个单击响应函数
            var btn001 = document.getElementById("btn01");
            btn001.onclick = function () {
                // 查找#chuntian节点
                var chuntian01 = document.getElementById("chuntian");
                // 可以通过innerHTML这个属性获取html内的代码
                alert(chuntian.innerHTML);
            }

            //为id为btn02的按钮绑定一个单击响应函数
            var btn002 = document.getElementById("btn02");
            btn002.onclick = function () {
                // 查找所有li节点
                //  getElementByTagName()通过标签名获取一组元素节点对象
                // 返回一个类数组,即使查询到的元素只有一个,也会封装到数组中返回
                var li01 = document.getElementsByTagName("li");

                //li01的数组长度
                alert(li01.length);

                for (var i = 0; i < li01.length; i++) {
                    alert(li01[i].innerHTML);
                }

            }

            //为id为btn03的按钮绑定一个单击响应函数
            var btn003 = document.getElementById("btn03");
            btn003.onclick = function () {
                // 查找name=gender的所有节点
                var gender01 = document.getElementsByName("gender");

                //gender01的数组长度
                alert(gender01.length);

                //  对于自结束标签innerHTML没有意义
                // 如果需要读取元素节点属性,直接使用 元素.属性名
                for (var i = 0; i < gender01.length; i++) {
                    alert(gender01[i].value);
                }
            }

            //为id为btn04的按钮绑定一个单击响应函数
            var btn004 = document.getElementById("btn04");
            btn004.onclick = function () {
                // 查找#jijie下所有li节点
                var jijie01 = jijie.getElementsByTagName("li");

                //jijie01的数组长度
                alert(jijie01.length);

                for (var i = 0; i < jijie01.length; i++) {
                    alert(jijie01[i].innerHTML);
                }
            }

            //为id为btn05的按钮绑定一个单击响应函数
            var btn005 = document.getElementById("btn05");
            btn005.onclick = function () {
                // 返回#jijie的所有子节点
                var jijie02 = document.getElementById("jijie");

                //  childNodes属性表示当前所有的子节点;这个属性会获取包括文本节点在内的所有节点
                // var zijiedian = jijie02.childNodes;
                // alert(zijiedian.length);

                var zijiedian = jijie02.children;
                alert(zijiedian.length);

                for (var i = 0; i < zijiedian.length; i++) {
                    alert(zijiedian[i].innerHTML);
                }
            }

            //为id为btn06的按钮绑定一个单击响应函数
            var btn006 = document.getElementById("btn06");
            btn006.onclick = function () {
                // 返回#jieduan的最后一个子节点
                var jieduan01 = document.getElementById("jieduan");

                var diyi = jieduan01.lastChild;

                alert(diyi.innerHTML);

            }

            //为id为btn07的按钮绑定一个单击响应函数
            var btn007 = document.getElementById("btn07");
            btn007.onclick = function () {
                // 返回#chuntian的父节点
                var chuntian = document.getElementById("chuntian");

                var fujiedian = chuntian.parentNode;

                alert(fujiedian.innerHTML);

            }
        }

    </script>
</head>

<body>
    <div id="zong">
        <div class="zuobu">
            <!-- 上部 -->
            <div class="shangbu">
                <p>你最喜欢哪个季节?</p>
                <ul id="jijie">
                    <li id="chuntian">春天</li>
                    <li>夏天</li>
                    <li>秋天</li>
                    <li>冬天</li>
                </ul>
                <p>你最喜欢的课程?</p>
                <ul>
                    <li>语文</li>
                    <li>数学</li>
                    <li>物理</li>
                    <li>化学</li>
                    <li>生物</li>
                </ul>
                <p>你正处在哪个阶段?</p>
                <ul id="jieduan">
                    <li>上学</li>
                    <li>工作</li>
                    <li>养老</li></ul>
            </div>
            <!-- 下部 -->
            <div class="xiabu">
                gender:
                <input type="radio" name="gender" value="male" />
                Male
                <input type="radio" name="gender" value="female" />
                Female
                <br>
                <br>
                name:
                <input type="text" name="name" id="username" value="你好呀!!" />

            </div>
        </div>
        <!-- 按钮 -->
        <div class="anniu">
            <button id="btn01">查找#chuntian节点</button>
            <button id="btn02">查找所有li节点</button>
            <button id="btn03">查找name=gender的所有节点</button>
            <button id="btn04">查找#jijie下所有li节点</button>
            <button id="btn05">返回#jijie的所有子节点</button>
            <button id="btn06">返回#jieduan的最后一个子节点</button>
            <button id="btn07">返回#chuntian的父节点</button>
            <button id="btn08">返回#Android的前一个兄弟节点</button>
            <button id="btn09">返回#username的value属性值</button>
            <button id="btn10">设置#username的属性值</button>
            <button id="btn11">返回#chuntian的文本值</button>
        </div>
    </div>
</body>

</html>
  1. children属性可以获取当前元素的所有的子元素;
    children
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript</title>
    <!-- <link rel="stylesheet" href="../CSS/reset.css"> -->
    <style>
        #zong {
            margin: 150px 100PX;
        }

        .anniu button {
            width: 400px;
            padding: 5px;
            margin: 5px;
            margin-top: 0;
        }

        .zuobu {
            float: left;
        }

        .anniu {
            width: 400px;
            float: left;
        }

        .shangbu {
            width: 400px;
            border: black 2px solid;
        }
        li{
            display: inline-block;
            background-color: cyan;
            padding: 5px;
            border: 1px solid #000;
        }
        p{
            padding-left: 40px;
        }
        .xiabu {
            width: 400px;
            margin-top: 20px;
            height: 100px;
            border: black 2px solid;
        }
    </style>
    <script>
        window.onload = function () {
            //为id为btn01的按钮绑定一个单击响应函数
            var btn001 = document.getElementById("btn01");
            btn001.onclick = function(){
                // 查找#chuntian节点
                var chuntian01 = document.getElementById("chuntian");
                // 可以通过innerHTML这个属性获取html内的代码
                alert(chuntian.innerHTML);
            }

            //为id为btn02的按钮绑定一个单击响应函数
            var btn002 = document.getElementById("btn02");
            btn002.onclick = function(){
                // 查找所有li节点
                //  getElementByTagName()通过标签名获取一组元素节点对象
                // 返回一个类数组,即使查询到的元素只有一个,也会封装到数组中返回
                var li01 = document.getElementsByTagName("li");

                //li01的数组长度
                alert(li01.length);

                for(var i = 0 ;i < li01.length; i++){
                    alert(li01[i].innerHTML);
                }

            }

            //为id为btn03的按钮绑定一个单击响应函数
            var btn003 = document.getElementById("btn03");
            btn003.onclick = function(){
                // 查找name=gender的所有节点
                var gender01 = document.getElementsByName("gender");

                 //gender01的数组长度
                 alert(gender01.length);

                //  对于自结束标签innerHTML没有意义
                // 如果需要读取元素节点属性,直接使用 元素.属性名
                for(var i = 0 ;i < gender01.length; i++){
                    alert(gender01[i].value);
                }
            }

            //为id为btn04的按钮绑定一个单击响应函数
            var btn004 = document.getElementById("btn04");
            btn004.onclick = function(){
                // 查找#jijie下所有li节点
                var jijie01 = jijie.getElementsByTagName("li");

                 //jijie01的数组长度
                alert(jijie01.length);

                for(var i = 0 ;i < jijie01.length; i++){
                    alert(jijie01[i].innerHTML);
                }
            }

            //为id为btn05的按钮绑定一个单击响应函数
            var btn005 = document.getElementById("btn05");
            btn005.onclick = function(){
                // 返回#jijie的所有子节点
                var jijie02 = document.getElementById("jijie");

                //  childNodes属性表示当前所有的子节点;这个属性会获取包括文本节点在内的所有节点
                // var zijiedian = jijie02.childNodes;
                // alert(zijiedian.length);

                var zijiedian = jijie02.children;
                alert(zijiedian.length);

                for(var i = 0 ;i < zijiedian.length; i++){
                    alert(zijiedian[i].innerHTML);
                }
            }

        }

    </script>
</head>

<body>
    <div id="zong">
        <div class="zuobu">
            <!-- 上部 -->
            <div class="shangbu">
                <p>你最喜欢哪个季节?</p>
                <ul id="jijie">
                    <li id="chuntian">春天</li>
                    <li>夏天</li>
                    <li>秋天</li>
                    <li>冬天</li>
                </ul>
                <p>你最喜欢的课程?</p>
                <ul>
                    <li>语文</li>
                    <li>数学</li>
                    <li>物理</li>
                    <li>化学</li>
                    <li>生物</li>
                </ul>
                <p>你正处在哪个阶段?</p>
                <ul>
                    <li>上学</li>
                    <li>工作</li>
                    <li>养老</li>
                </ul>
            </div>
            <!-- 下部 -->
            <div class="xiabu">
                gender:
                <input type="radio" name="gender" value="male" />
                Male
                <input type="radio" name="gender" value="female" />
                Female
                <br>
                <br>
                name:
                <input type="text" name="name" id="username" value="你好呀!!" />

            </div>
        </div>
        <!-- 按钮 -->
        <div class="anniu">
            <button id="btn01">查找#chuntian节点</button>
            <button id="btn02">查找所有li节点</button>
            <button id="btn03">查找name=gender的所有节点</button>
            <button id="btn04">查找#jijie下所有li节点</button>
            <button id="btn05">返回#jijie的所有子节点</button>
            <button id="btn06">返回#phone的第一个子节点</button>
            <button id="btn07">返回#chuntian的父节点</button>
            <button id="btn08">返回#Android的前一个兄弟节点</button>
            <button id="btn09">返回#username的value属性值</button>
            <button id="btn10">设置#username的属性值</button>
            <button id="btn11">返回#chuntian的文本值</button>
        </div>
    </div>
</body>

</html>
  1. firstElementChild获取当前元素的第一个的子元素;
    firstElementChildfirstElementChild
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript</title>
    <!-- <link rel="stylesheet" href="../CSS/reset.css"> -->
    <style>
        #zong {
            margin: 150px 100PX;
        }

        .anniu button {
            width: 400px;
            padding: 5px;
            margin: 5px;
            margin-top: 0;
        }

        .zuobu {
            float: left;
        }

        .anniu {
            width: 400px;
            float: left;
        }

        .shangbu {
            width: 400px;
            border: black 2px solid;
        }

        li {
            display: inline-block;
            background-color: cyan;
            padding: 5px;
            border: 1px solid #000;
        }

        p {
            padding-left: 40px;
        }

        .xiabu {
            width: 400px;
            margin-top: 20px;
            height: 100px;
            border: black 2px solid;
        }
    </style>
    <script>
        window.onload = function () {
            //为id为btn01的按钮绑定一个单击响应函数
            var btn001 = document.getElementById("btn01");
            btn001.onclick = function () {
                // 查找#chuntian节点
                var chuntian01 = document.getElementById("chuntian");
                // 可以通过innerHTML这个属性获取html内的代码
                alert(chuntian.innerHTML);
            }

            //为id为btn02的按钮绑定一个单击响应函数
            var btn002 = document.getElementById("btn02");
            btn002.onclick = function () {
                // 查找所有li节点
                //  getElementByTagName()通过标签名获取一组元素节点对象
                // 返回一个类数组,即使查询到的元素只有一个,也会封装到数组中返回
                var li01 = document.getElementsByTagName("li");

                //li01的数组长度
                alert(li01.length);

                for (var i = 0; i < li01.length; i++) {
                    alert(li01[i].innerHTML);
                }

            }

            //为id为btn03的按钮绑定一个单击响应函数
            var btn003 = document.getElementById("btn03");
            btn003.onclick = function () {
                // 查找name=gender的所有节点
                var gender01 = document.getElementsByName("gender");

                //gender01的数组长度
                alert(gender01.length);

                //  对于自结束标签innerHTML没有意义
                // 如果需要读取元素节点属性,直接使用 元素.属性名
                for (var i = 0; i < gender01.length; i++) {
                    alert(gender01[i].value);
                }
            }

            //为id为btn04的按钮绑定一个单击响应函数
            var btn004 = document.getElementById("btn04");
            btn004.onclick = function () {
                // 查找#jijie下所有li节点
                var jijie01 = jijie.getElementsByTagName("li");

                //jijie01的数组长度
                alert(jijie01.length);

                for (var i = 0; i < jijie01.length; i++) {
                    alert(jijie01[i].innerHTML);
                }
            }

            //为id为btn05的按钮绑定一个单击响应函数
            var btn005 = document.getElementById("btn05");
            btn005.onclick = function () {
                // 返回#jijie的所有子节点
                var jijie02 = document.getElementById("jijie");

                //  childNodes属性表示当前所有的子节点;这个属性会获取包括文本节点在内的所有节点
                // var zijiedian = jijie02.childNodes;
                // alert(zijiedian.length);

                var zijiedian = jijie02.children;
                alert(zijiedian.length);

                for (var i = 0; i < zijiedian.length; i++) {
                    alert(zijiedian[i].innerHTML);
                }
            }

            //为id为btn06的按钮绑定一个单击响应函数
            var btn006 = document.getElementById("btn06");
            btn006.onclick = function () {
                // 返回#jieduan的第一个子节点
                var jieduan01 = document.getElementById("jieduan");

                var diyi = jieduan01.firstElementChild;

                alert(diyi.innerHTML);

            }

            //为id为btn07的按钮绑定一个单击响应函数
            var btn007 = document.getElementById("btn07");
            btn007.onclick = function () {
                // 返回#chuntian的父节点
                var chuntian = document.getElementById("chuntian");

                var fujiedian = chuntian.parentNode;

                alert(fujiedian.innerHTML);

            }
        }

    </script>
</head>

<body>
    <div id="zong">
        <div class="zuobu">
            <!-- 上部 -->
            <div class="shangbu">
                <p>你最喜欢哪个季节?</p>
                <ul id="jijie">
                    <li id="chuntian">春天</li>
                    <li>夏天</li>
                    <li>秋天</li>
                    <li>冬天</li>
                </ul>
                <p>你最喜欢的课程?</p>
                <ul>
                    <li>语文</li>
                    <li>数学</li>
                    <li>物理</li>
                    <li>化学</li>
                    <li>生物</li>
                </ul>
                <p>你正处在哪个阶段?</p>
                <ul id="jieduan">
                    <li>上学</li>
                    <li>工作</li>
                    <li>养老</li>
                </ul>
            </div>
            <!-- 下部 -->
            <div class="xiabu">
                gender:
                <input type="radio" name="gender" value="male" />
                Male
                <input type="radio" name="gender" value="female" />
                Female
                <br>
                <br>
                name:
                <input type="text" name="name" id="username" value="你好呀!!" />

            </div>
        </div>
        <!-- 按钮 -->
        <div class="anniu">
            <button id="btn01">查找#chuntian节点</button>
            <button id="btn02">查找所有li节点</button>
            <button id="btn03">查找name=gender的所有节点</button>
            <button id="btn04">查找#jijie下所有li节点</button>
            <button id="btn05">返回#jijie的所有子节点</button>
            <button id="btn06">返回#jieduan的第一个子节点</button>
            <button id="btn07">返回#chuntian的父节点</button>
            <button id="btn08">返回#Android的前一个兄弟节点</button>
            <button id="btn09">返回#username的value属性值</button>
            <button id="btn10">设置#username的属性值</button>
            <button id="btn11">返回#chuntian的文本值</button>
        </div>
    </div>
</body>

</html>

通过具体的节点调用(获取父节点和兄弟节点)

  1. parentNode属性表示当前节点的元素;
    parentNode
    innerText,该属性可以获取到元素内部的文本内容;和innerHTML类似,不同的是它会自动将html去掉;
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript</title>
    <!-- <link rel="stylesheet" href="../CSS/reset.css"> -->
    <style>
        #zong {
            margin: 150px 100PX;
        }

        .anniu button {
            width: 400px;
            padding: 5px;
            margin: 5px;
            margin-top: 0;
        }

        .zuobu {
            float: left;
        }

        .anniu {
            width: 400px;
            float: left;
        }

        .shangbu {
            width: 400px;
            border: black 2px solid;
        }

        li {
            display: inline-block;
            background-color: cyan;
            padding: 5px;
            border: 1px solid #000;
        }

        p {
            padding-left: 40px;
        }

        .xiabu {
            width: 400px;
            margin-top: 20px;
            height: 100px;
            border: black 2px solid;
        }
    </style>
    <script>
        window.onload = function () {
            function bangDing (dianji, fun){
                var btn = document.getElementById(dianji);
                btn.onclick = fun;
            }
            //为id为btn01的按钮绑定一个单击响应函数
            var btn001 = document.getElementById("btn01");
            btn001.onclick = function () {
                // 查找#chuntian节点
                var chuntian01 = document.getElementById("chuntian");
                // 可以通过innerHTML这个属性获取html内的代码
                alert(chuntian.innerHTML);
            }

            //为id为btn02的按钮绑定一个单击响应函数
            var btn002 = document.getElementById("btn02");
            btn002.onclick = function () {
                // 查找所有li节点
                //  getElementByTagName()通过标签名获取一组元素节点对象
                // 返回一个类数组,即使查询到的元素只有一个,也会封装到数组中返回
                var li01 = document.getElementsByTagName("li");

                //li01的数组长度
                alert(li01.length);

                for (var i = 0; i < li01.length; i++) {
                    alert(li01[i].innerHTML);
                }

            }

            //为id为btn03的按钮绑定一个单击响应函数
            var btn003 = document.getElementById("btn03");
            btn003.onclick = function () {
                // 查找name=gender的所有节点
                var gender01 = document.getElementsByName("gender");

                //gender01的数组长度
                alert(gender01.length);

                //  对于自结束标签innerHTML没有意义
                // 如果需要读取元素节点属性,直接使用 元素.属性名
                for (var i = 0; i < gender01.length; i++) {
                    alert(gender01[i].value);
                }
            }

            //为id为btn04的按钮绑定一个单击响应函数
            var btn004 = document.getElementById("btn04");
            btn004.onclick = function () {
                // 查找#jijie下所有li节点
                var jijie01 = jijie.getElementsByTagName("li");

                //jijie01的数组长度
                alert(jijie01.length);

                for (var i = 0; i < jijie01.length; i++) {
                    alert(jijie01[i].innerHTML);
                }
            }

            //为id为btn05的按钮绑定一个单击响应函数
            var btn005 = document.getElementById("btn05");
            btn005.onclick = function () {
                // 返回#jijie的所有子节点
                var jijie02 = document.getElementById("jijie");

                //  childNodes属性表示当前所有的子节点;这个属性会获取包括文本节点在内的所有节点
                // var zijiedian = jijie02.childNodes;
                // alert(zijiedian.length);

                var zijiedian = jijie02.children;
                alert(zijiedian.length);

                for (var i = 0; i < zijiedian.length; i++) {
                    alert(zijiedian[i].innerHTML);
                }
            }

            //为id为btn06的按钮绑定一个单击响应函数
            var btn006 = document.getElementById("btn06");
            btn006.onclick = function () {
                // 返回#jieduan的第一个子节点
                var jieduan01 = document.getElementById("jieduan");

                var diyi = jieduan01.firstElementChild;

                alert(diyi.innerHTML);

            }

            //为id为btn07的按钮绑定一个单击响应函数
            bangDing ("btn07", function(){
                // 返回#chuntian的父节点
                var chuntian = document.getElementById("chuntian");

                var fujiedian = chuntian.parentNode;

                alert(fujiedian.innerText);

            })
        }

    </script>
</head>

<body>
    <div id="zong">
        <div class="zuobu">
            <!-- 上部 -->
            <div class="shangbu">
                <p>你最喜欢哪个季节?</p>
                <ul id="jijie">
                    <li id="chuntian">春天</li>
                    <li>夏天</li>
                    <li>秋天</li>
                    <li>冬天</li>
                </ul>
                <p>你最喜欢的课程?</p>
                <ul>
                    <li>语文</li>
                    <li>数学</li>
                    <li>物理</li>
                    <li>化学</li>
                    <li>生物</li>
                </ul>
                <p>你正处在哪个阶段?</p>
                <ul id="jieduan">
                    <li>上学</li>
                    <li>工作</li>
                    <li>养老</li>
                </ul>
            </div>
            <!-- 下部 -->
            <div class="xiabu">
                gender:
                <input type="radio" name="gender" value="male" />
                Male
                <input type="radio" name="gender" value="female" />
                Female
                <br>
                <br>
                name:
                <input type="text" name="name" id="username" value="你好呀!!" />

            </div>
        </div>
        <!-- 按钮 -->
        <div class="anniu">
            <button id="btn01">查找#chuntian节点</button>
            <button id="btn02">查找所有li节点</button>
            <button id="btn03">查找name=gender的所有节点</button>
            <button id="btn04">查找#jijie下所有li节点</button>
            <button id="btn05">返回#jijie的所有子节点</button>
            <button id="btn06">返回#jieduan的第一个子节点</button>
            <button id="btn07">返回#chuntian的父节点</button>
            <button id="btn08">返回#Android的前一个兄弟节点</button>
            <button id="btn09">返回#username的value属性值</button>
            <button id="btn10">设置#username的属性值</button>
            <button id="btn11">返回#chuntian的文本值</button>
        </div>
    </div>
</body>

</html>
  1. previousSibling属性表示当前节点前一个兄弟节点;包括空白文本;
    previousSiblingpreviousSibling
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript</title>
    <!-- <link rel="stylesheet" href="../CSS/reset.css"> -->
    <style>
        #zong {
            margin: 150px 100PX;
        }

        .anniu button {
            width: 400px;
            padding: 5px;
            margin: 5px;
            margin-top: 0;
        }

        .zuobu {
            float: left;
        }

        .anniu {
            width: 400px;
            float: left;
        }

        .shangbu {
            width: 400px;
            border: black 2px solid;
        }

        li {
            display: inline-block;
            background-color: cyan;
            padding: 5px;
            border: 1px solid #000;
        }

        p {
            padding-left: 40px;
        }

        .xiabu {
            width: 400px;
            margin-top: 20px;
            height: 100px;
            border: black 2px solid;
        }
    </style>
    <script>
        window.onload = function () {
            function bangDing (dianji, fun){
                var btn = document.getElementById(dianji);
                btn.onclick = fun;
            }
            //为id为btn01的按钮绑定一个单击响应函数
            var btn001 = document.getElementById("btn01");
            btn001.onclick = function () {
                // 查找#chuntian节点
                var chuntian01 = document.getElementById("chuntian");
                // 可以通过innerHTML这个属性获取html内的代码
                alert(chuntian.innerHTML);
            }

            //为id为btn02的按钮绑定一个单击响应函数
            var btn002 = document.getElementById("btn02");
            btn002.onclick = function () {
                // 查找所有li节点
                //  getElementByTagName()通过标签名获取一组元素节点对象
                // 返回一个类数组,即使查询到的元素只有一个,也会封装到数组中返回
                var li01 = document.getElementsByTagName("li");

                //li01的数组长度
                alert(li01.length);

                for (var i = 0; i < li01.length; i++) {
                    alert(li01[i].innerHTML);
                }

            }

            //为id为btn03的按钮绑定一个单击响应函数
            var btn003 = document.getElementById("btn03");
            btn003.onclick = function () {
                // 查找name=gender的所有节点
                var gender01 = document.getElementsByName("gender");

                //gender01的数组长度
                alert(gender01.length);

                //  对于自结束标签innerHTML没有意义
                // 如果需要读取元素节点属性,直接使用 元素.属性名
                for (var i = 0; i < gender01.length; i++) {
                    alert(gender01[i].value);
                }
            }

            //为id为btn04的按钮绑定一个单击响应函数
            var btn004 = document.getElementById("btn04");
            btn004.onclick = function () {
                // 查找#jijie下所有li节点
                var jijie01 = jijie.getElementsByTagName("li");

                //jijie01的数组长度
                alert(jijie01.length);

                for (var i = 0; i < jijie01.length; i++) {
                    alert(jijie01[i].innerHTML);
                }
            }

            //为id为btn05的按钮绑定一个单击响应函数
            var btn005 = document.getElementById("btn05");
            btn005.onclick = function () {
                // 返回#jijie的所有子节点
                var jijie02 = document.getElementById("jijie");

                //  childNodes属性表示当前所有的子节点;这个属性会获取包括文本节点在内的所有节点
                // var zijiedian = jijie02.childNodes;
                // alert(zijiedian.length);

                var zijiedian = jijie02.children;
                alert(zijiedian.length);

                for (var i = 0; i < zijiedian.length; i++) {
                    alert(zijiedian[i].innerHTML);
                }
            }

            //为id为btn06的按钮绑定一个单击响应函数
            var btn006 = document.getElementById("btn06");
            btn006.onclick = function () {
                // 返回#jieduan的第一个子节点
                var jieduan01 = document.getElementById("jieduan");

                var diyi = jieduan01.firstElementChild;

                alert(diyi.innerHTML);

            }

            //为id为btn07的按钮绑定一个单击响应函数
            bangDing ("btn07", function(){
                // 返回#chuntian的父节点
                var chuntian = document.getElementById("chuntian");

                var fujiedian = chuntian.parentNode;

                alert(fujiedian.innerText);

            });

            //为id为btn08的按钮绑定一个单击响应函数
            bangDing ("btn08", function(){
                // 返回#work的前一个兄弟节点
                var xiongdi = document.getElementById("work");

                var xiongdijiedian = xiongdi.previousSibling;

                alert(xiongdijiedian.innerHTML);

            });
        }

    </script>
</head>

<body>
    <div id="zong">
        <div class="zuobu">
            <!-- 上部 -->
            <div class="shangbu">
                <p>你最喜欢哪个季节?</p>
                <ul id="jijie">
                    <li id="chuntian">春天</li>
                    <li>夏天</li>
                    <li>秋天</li>
                    <li>冬天</li>
                </ul>
                <p>你最喜欢的课程?</p>
                <ul>
                    <li>语文</li>
                    <li>数学</li>
                    <li>物理</li>
                    <li>化学</li>
                    <li>生物</li>
                </ul>
                <p>你正处在哪个阶段?</p>
                <ul id="jieduan">
                    <li>上学</li>
                    <li id="work">工作</li>
                    <li>养老</li>
                </ul>
            </div>
            <!-- 下部 -->
            <div class="xiabu">
                gender:
                <input type="radio" name="gender" value="male" />
                Male
                <input type="radio" name="gender" value="female" />
                Female
                <br>
                <br>
                name:
                <input type="text" name="name" id="username" value="你好呀!!" />

            </div>
        </div>
        <!-- 按钮 -->
        <div class="anniu">
            <button id="btn01">查找#chuntian节点</button>
            <button id="btn02">查找所有li节点</button>
            <button id="btn03">查找name=gender的所有节点</button>
            <button id="btn04">查找#jijie下所有li节点</button>
            <button id="btn05">返回#jijie的所有子节点</button>
            <button id="btn06">返回#jieduan的第一个子节点</button>
            <button id="btn07">返回#chuntian的父节点</button>
            <button id="btn08">返回#work的前一个兄弟节点</button>
            <button id="btn09">返回#username的value属性值</button>
            <button id="btn10">设置#username的属性值</button>
            <button id="btn11">返回#chuntian的文本值</button>
        </div>
    </div>
</body>

</html>
  1. nextSibling属性表示当前节点后一个兄弟节点;
    nextSibling
    nextSibling
    <!DOCTYPE html>
    <html lang="en">

    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>JavaScript</title>
        <!-- <link rel="stylesheet" href="../CSS/reset.css"> -->
        <style>
            #zong {
                margin: 150px 100PX;
            }

            .anniu button {
                width: 400px;
                padding: 5px;
                margin: 5px;
                margin-top: 0;
            }

            .zuobu {
                float: left;
            }

            .anniu {
                width: 400px;
                float: left;
            }

            .shangbu {
                width: 400px;
                border: black 2px solid;
            }

            li {
                display: inline-block;
                background-color: cyan;
                padding: 5px;
                border: 1px solid #000;
            }

            p {
                padding-left: 40px;
            }

            .xiabu {
                width: 400px;
                margin-top: 20px;
                height: 100px;
                border: black 2px solid;
            }
        </style>
        <script>
            window.onload = function () {
                function bangDing (dianji, fun){
                    var btn = document.getElementById(dianji);
                    btn.onclick = fun;
                }
                //为id为btn01的按钮绑定一个单击响应函数
                var btn001 = document.getElementById("btn01");
                btn001.onclick = function () {
                    // 查找#chuntian节点
                    var chuntian01 = document.getElementById("chuntian");
                    // 可以通过innerHTML这个属性获取html内的代码
                    alert(chuntian.innerHTML);
                }

                //为id为btn02的按钮绑定一个单击响应函数
                var btn002 = document.getElementById("btn02");
                btn002.onclick = function () {
                    // 查找所有li节点
                    //  getElementByTagName()通过标签名获取一组元素节点对象
                    // 返回一个类数组,即使查询到的元素只有一个,也会封装到数组中返回
                    var li01 = document.getElementsByTagName("li");

                    //li01的数组长度
                    alert(li01.length);

                    for (var i = 0; i < li01.length; i++) {
                        alert(li01[i].innerHTML);
                    }

                }

                //为id为btn03的按钮绑定一个单击响应函数
                var btn003 = document.getElementById("btn03");
                btn003.onclick = function () {
                    // 查找name=gender的所有节点
                    var gender01 = document.getElementsByName("gender");

                    //gender01的数组长度
                    alert(gender01.length);

                    //  对于自结束标签innerHTML没有意义
                    // 如果需要读取元素节点属性,直接使用 元素.属性名
                    for (var i = 0; i < gender01.length; i++) {
                        alert(gender01[i].value);
                    }
                }

                //为id为btn04的按钮绑定一个单击响应函数
                var btn004 = document.getElementById("btn04");
                btn004.onclick = function () {
                    // 查找#jijie下所有li节点
                    var jijie01 = jijie.getElementsByTagName("li");

                    //jijie01的数组长度
                    alert(jijie01.length);

                    for (var i = 0; i < jijie01.length; i++) {
                        alert(jijie01[i].innerHTML);
                    }
                }

                //为id为btn05的按钮绑定一个单击响应函数
                var btn005 = document.getElementById("btn05");
                btn005.onclick = function () {
                    // 返回#jijie的所有子节点
                    var jijie02 = document.getElementById("jijie");

                    //  childNodes属性表示当前所有的子节点;这个属性会获取包括文本节点在内的所有节点
                    // var zijiedian = jijie02.childNodes;
                    // alert(zijiedian.length);

                    var zijiedian = jijie02.children;
                    alert(zijiedian.length);

                    for (var i = 0; i < zijiedian.length; i++) {
                        alert(zijiedian[i].innerHTML);
                    }
                }

                //为id为btn06的按钮绑定一个单击响应函数
                var btn006 = document.getElementById("btn06");
                btn006.onclick = function () {
                    // 返回#jieduan的第一个子节点
                    var jieduan01 = document.getElementById("jieduan");

                    var diyi = jieduan01.firstElementChild;

                    alert(diyi.innerHTML);

                }

                //为id为btn07的按钮绑定一个单击响应函数
                bangDing ("btn07", function(){
                    // 返回#chuntian的父节点
                    var chuntian = document.getElementById("chuntian");

                    var fujiedian = chuntian.parentNode;

                    alert(fujiedian.innerText);

                });

                //为id为btn08的按钮绑定一个单击响应函数
                bangDing ("btn08", function(){
                    // 返回#work的后一个兄弟节点
                    var xiongdi = document.getElementById("work");

                    var xiongdijiedian = xiongdi.nextSibling;

                    alert(xiongdijiedian.innerHTML);

                });
            }

        </script>
    </head>

    <body>
        <div id="zong">
            <div class="zuobu">
                <!-- 上部 -->
                <div class="shangbu">
                    <p>你最喜欢哪个季节?</p>
                    <ul id="jijie">
                        <li id="chuntian">春天</li>
                        <li>夏天</li>
                        <li>秋天</li>
                        <li>冬天</li>
                    </ul>
                    <p>你最喜欢的课程?</p>
                    <ul>
                        <li>语文</li>
                        <li>数学</li>
                        <li>物理</li>
                        <li>化学</li>
                        <li>生物</li>
                    </ul>
                    <p>你正处在哪个阶段?</p>
                    <ul id="jieduan">
                        <li>上学</li>
                        <li id="work">工作</li><li>养老</li>
                    </ul>
                </div>
                <!-- 下部 -->
                <div class="xiabu">
                    gender:
                    <input type="radio" name="gender" value="male" />
                    Male
                    <input type="radio" name="gender" value="female" />
                    Female
                    <br>
                    <br>
                    name:
                    <input type="text" name="name" id="username" value="你好呀!!" />

                </div>
            </div>
            <!-- 按钮 -->
            <div class="anniu">
                <button id="btn01">查找#chuntian节点</button>
                <button id="btn02">查找所有li节点</button>
                <button id="btn03">查找name=gender的所有节点</button>
                <button id="btn04">查找#jijie下所有li节点</button>
                <button id="btn05">返回#jijie的所有子节点</button>
                <button id="btn06">返回#jieduan的第一个子节点</button>
                <button id="btn07">返回#chuntian的父节点</button>
                <button id="btn08">返回#work的后一个兄弟节点</button>
                <button id="btn09">返回#username的value属性值</button>
                <button id="btn10">设置#username的属性值</button>
                <button id="btn11">返回#chuntian的文本值</button>
            </div>
        </div>
    </body>

    </html>
  1. previousElementSibling获取前一个兄弟元素;
    previousElementSibling
    previousElementSibling
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript</title>
    <!-- <link rel="stylesheet" href="../CSS/reset.css"> -->
    <style>
        #zong {
            margin: 150px 100PX;
        }

        .anniu button {
            width: 400px;
            padding: 5px;
            margin: 5px;
            margin-top: 0;
        }

        .zuobu {
            float: left;
        }

        .anniu {
            width: 400px;
            float: left;
        }

        .shangbu {
            width: 400px;
            border: black 2px solid;
        }

        li {
            display: inline-block;
            background-color: cyan;
            padding: 5px;
            border: 1px solid #000;
        }

        p {
            padding-left: 40px;
        }

        .xiabu {
            width: 400px;
            margin-top: 20px;
            height: 100px;
            border: black 2px solid;
        }
    </style>
    <script>
        window.onload = function () {
            function bangDing (dianji, fun){
                var btn = document.getElementById(dianji);
                btn.onclick = fun;
            }
            //为id为btn01的按钮绑定一个单击响应函数
            var btn001 = document.getElementById("btn01");
            btn001.onclick = function () {
                // 查找#chuntian节点
                var chuntian01 = document.getElementById("chuntian");
                // 可以通过innerHTML这个属性获取html内的代码
                alert(chuntian.innerHTML);
            }

            //为id为btn02的按钮绑定一个单击响应函数
            var btn002 = document.getElementById("btn02");
            btn002.onclick = function () {
                // 查找所有li节点
                //  getElementByTagName()通过标签名获取一组元素节点对象
                // 返回一个类数组,即使查询到的元素只有一个,也会封装到数组中返回
                var li01 = document.getElementsByTagName("li");

                //li01的数组长度
                alert(li01.length);

                for (var i = 0; i < li01.length; i++) {
                    alert(li01[i].innerHTML);
                }

            }

            //为id为btn03的按钮绑定一个单击响应函数
            var btn003 = document.getElementById("btn03");
            btn003.onclick = function () {
                // 查找name=gender的所有节点
                var gender01 = document.getElementsByName("gender");

                //gender01的数组长度
                alert(gender01.length);

                //  对于自结束标签innerHTML没有意义
                // 如果需要读取元素节点属性,直接使用 元素.属性名
                for (var i = 0; i < gender01.length; i++) {
                    alert(gender01[i].value);
                }
            }

            //为id为btn04的按钮绑定一个单击响应函数
            var btn004 = document.getElementById("btn04");
            btn004.onclick = function () {
                // 查找#jijie下所有li节点
                var jijie01 = jijie.getElementsByTagName("li");

                //jijie01的数组长度
                alert(jijie01.length);

                for (var i = 0; i < jijie01.length; i++) {
                    alert(jijie01[i].innerHTML);
                }
            }

            //为id为btn05的按钮绑定一个单击响应函数
            var btn005 = document.getElementById("btn05");
            btn005.onclick = function () {
                // 返回#jijie的所有子节点
                var jijie02 = document.getElementById("jijie");

                //  childNodes属性表示当前所有的子节点;这个属性会获取包括文本节点在内的所有节点
                // var zijiedian = jijie02.childNodes;
                // alert(zijiedian.length);

                var zijiedian = jijie02.children;
                alert(zijiedian.length);

                for (var i = 0; i < zijiedian.length; i++) {
                    alert(zijiedian[i].innerHTML);
                }
            }

            //为id为btn06的按钮绑定一个单击响应函数
            var btn006 = document.getElementById("btn06");
            btn006.onclick = function () {
                // 返回#jieduan的第一个子节点
                var jieduan01 = document.getElementById("jieduan");

                var diyi = jieduan01.firstElementChild;

                alert(diyi.innerHTML);

            }

            //为id为btn07的按钮绑定一个单击响应函数
            bangDing ("btn07", function(){
                // 返回#chuntian的父节点
                var chuntian = document.getElementById("chuntian");

                var fujiedian = chuntian.parentNode;

                alert(fujiedian.innerText);

            });

            //为id为btn08的按钮绑定一个单击响应函数
            bangDing ("btn08", function(){
                // 返回#work的前一个兄弟节点
                var xiongdi = document.getElementById("work");

                var xiongdijiedian = xiongdi.previousElementSibling;

                alert(xiongdijiedian.innerHTML);

            });
        }

    </script>
</head>

<body>
    <div id="zong">
        <div class="zuobu">
            <!-- 上部 -->
            <div class="shangbu">
                <p>你最喜欢哪个季节?</p>
                <ul id="jijie">
                    <li id="chuntian">春天</li>
                    <li>夏天</li>
                    <li>秋天</li>
                    <li>冬天</li>
                </ul>
                <p>你最喜欢的课程?</p>
                <ul>
                    <li>语文</li>
                    <li>数学</li>
                    <li>物理</li>
                    <li>化学</li>
                    <li>生物</li>
                </ul>
                <p>你正处在哪个阶段?</p>
                <ul id="jieduan">
                    <li>上学</li>
                    <li id="work">工作</li>
                    <li>养老</li>
                </ul>
            </div>
            <!-- 下部 -->
            <div class="xiabu">
                gender:
                <input type="radio" name="gender" value="male" />
                Male
                <input type="radio" name="gender" value="female" />
                Female
                <br>
                <br>
                name:
                <input type="text" name="name" id="username" value="你好呀!!" />

            </div>
        </div>
        <!-- 按钮 -->
        <div class="anniu">
            <button id="btn01">查找#chuntian节点</button>
            <button id="btn02">查找所有li节点</button>
            <button id="btn03">查找name=gender的所有节点</button>
            <button id="btn04">查找#jijie下所有li节点</button>
            <button id="btn05">返回#jijie的所有子节点</button>
            <button id="btn06">返回#jieduan的第一个子节点</button>
            <button id="btn07">返回#chuntian的父节点</button>
            <button id="btn08">返回#work的前一个兄弟节点</button>
            <button id="btn09">返回#username的value属性值</button>
            <button id="btn10">设置#username的属性值</button>
            <button id="btn11">返回#chuntian的文本值</button>
        </div>
    </div>
</body>

</html>
其他方法

在document中有一个属性body,它保存的是body的引用;
document.documentElement保存的是html根标签;
方法

document.all

代表页面中的所有元素(已被弃用);
根据元素的class属性查询一组元素节点对象;
document.all

getElementByClassName()

可以根据class属性节点对象
getElementByClassName()

document.querySelector()

需要一个选择器的字符串作为参数,可以根据css选择器来查询一个元素节点对象;
使用该方法总会返回唯一的一个元素,如果满足条件的元素有多个,那么它只会返回第一个;
document.querySelector()

document.querySelectorAll()

该方法和 document.querySelector()类似,不同的是它会将符合条件的元素封装到一个数组中返回;
即使符合条件的元素只有一个,也会返回数组;
document.querySelectorAll()

DOM增删改

使用innerHTML也可以完成DOM的增删改的相关操作(动静过大,不建议使用),一般会两种方式结合使用(推荐);

document.createTextElement()

用于创建一个元素节点对象,需要一个标签名作为参数,将会根据该标签名创建元素节点对象,并将创建好的对象作为返回值返回;
document.createTextElement()document.createTextElement()

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>day25-JavaScript 07 DOM对象</title>
    <!-- <link rel="stylesheet" href="../CSS/reset.css"> -->
    <style>
        #zong {
            margin: 150px 100PX;
        }

        .anniu button {
            width: 400px;
            padding: 5px;
            margin: 5px;
            margin-top: 0;
        }

        .anniu {
            width: 400px;
            float: left;
        }

        .shangbu {
            width: 400px;
            border: black 2px solid;
            float: left;
        }

        li {
            display: inline-block;
            background-color: cyan;
            padding: 5px;
            border: 1px solid #000;
        }

        p {
            padding-left: 40px;
        }

   
    </style>
    <script>
        window.onload = function () {
            function bangDing(dianji, fun) {
                var btn = document.getElementById(dianji);
                btn.onclick = fun;
            }
            //为id为btn01的按钮绑定一个单击响应函数
            bangDing("btn01", function () {
                // 创建一个“广州”节点,添加到#city下
                var chuntian = document.getElementById("bj");
                // 创建li元素节点
                var li = document.createElement("li");
                // 创建文本节点
                var gz = document.createTextNode("广州 ");
                // 将gz设置li的子节点
                li.appendChild(gz);

                // 获取id为chengshi的节点
                var city = document.getElementById("chengshi");

                // 将广州添加到city下
                city.appendChild(li);

            });

        }

    </script>
</head>

<body>
    <div id="zong">
        <!-- 上部 -->
        <div class="shangbu">
            <p>你最喜欢哪个城市?</p>
            <ul id="chengshi">
                <li id="bj">北京</li>
                <li>上海</li>
                <li>西安</li>
                <li>四川</li>
            </ul>
        </div>

        <!-- 按钮 -->
        <div class="anniu">
            <button id="btn01">创建一个“广州”节点,添加到#city下</button>
            <button id="btn02">将“广州”节点插入到#bj前面</button>
            <button id="btn03">使用“广州”节点替换#bj节点</button>
            <button id="btn04">删除#bj节点</button>
            <button id="btn05">读取#city内的HTML代码</button>
            <button id="btn06">设置#bj内的HTML代码</button>
        </div>
    </div>
</body>

</html>
document.createTextNode()

可以用来创建一个文本节点的对象;
需要一个文本内容作为参数,将会根据该内容创建文本节点,并将新的节点返回;

appendChild()

向一个父节点中添加一个新的子节点;
语法:父节点.appendChild(子节点);
appendChild()

insertBefore(新节点,旧节点)

可以在指定的子节点前插入新的子节点;
语法:父节点.insertBefore(新节点,旧节点);
insertBefore(新节点,旧节点)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>day25-JavaScript 07 DOM对象</title>
    <!-- <link rel="stylesheet" href="../CSS/reset.css"> -->
    <style>
        #zong {
            margin: 150px 100PX;
        }

        .anniu button {
            width: 400px;
            padding: 5px;
            margin: 5px;
            margin-top: 0;
        }

        .anniu {
            width: 400px;
            float: left;
        }

        .shangbu {
            width: 400px;
            border: black 2px solid;
            float: left;
        }

        li {
            display: inline-block;
            background-color: cyan;
            padding: 5px;
            border: 1px solid #000;
        }

        p {
            padding-left: 40px;
        }
    </style>
    <script>
        window.onload = function () {
            function bangDing(dianji, fun) {
                var btn = document.getElementById(dianji);
                btn.onclick = fun;
            }
            //为id为btn01的按钮绑定一个单击响应函数
            bangDing("btn01", function () {
                // 创建一个“广州”节点,添加到#city下
                var chuntian = document.getElementById("bj");
                // 创建li元素节点
                var li = document.createElement("li");
                // 创建文本节点
                var gz = document.createTextNode("广州");
                // 将gz设置li的子节点
                li.appendChild(gz);
                // 获取id为chengshi的节点
                var city = document.getElementById("chengshi");
                // 将广州添加到city下
                city.appendChild(li);
            });
            //为id为btn02的按钮绑定一个单击响应函数
            bangDing("btn02", function () {
                // 将“广州”节点插入到#bj前面
                
                // 创建li元素节点
                var li = document.createElement("li");
                // 创建文本节点
                var gz = document.createTextNode("广州");
                var beijing = document.getElementById("bj");
                // 将gz设置li的子节点
                li.appendChild(gz);
                // 获取id为chengshi的节点
                var city = document.getElementById("chengshi");
                // 将广州添加到city下
                city.insertBefore(li , beijing);
            });

        }

    </script>
</head>

<body>
    <div id="zong">
        <!-- 上部 -->
        <div class="shangbu">
            <p>你最喜欢哪个城市?</p>
            <ul id="chengshi">
                <li id="bj">北京</li>
                <li>上海</li>
                <li>西安</li>
                <li>四川</li>
            </ul>
        </div>

        <!-- 按钮 -->
        <div class="anniu">
            <button id="btn01">创建一个“广州”节点,添加到#city下</button>
            <button id="btn02">将“广州”节点插入到#bj前面</button>
            <button id="btn03">使用“广州”节点替换#bj节点</button>
            <button id="btn04">删除#bj节点</button>
            <button id="btn05">读取#city内的HTML代码</button>
            <button id="btn06">设置#bj内的HTML代码</button>
        </div>
    </div>
</body>

</html>
replaceChild()

可以使用指定的子节点替换已有的子节点;
语法:父节点.replaseChid(新节点,旧节点);
replaceChild()replaceChild()replaceChild()

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>day25-JavaScript 07 DOM对象</title>
    <!-- <link rel="stylesheet" href="../CSS/reset.css"> -->
    <style>
        #zong {
            margin: 150px 100PX;
        }

        .anniu button {
            width: 400px;
            padding: 5px;
            margin: 5px;
            margin-top: 0;
        }

        .anniu {
            width: 400px;
            float: left;
        }

        .shangbu {
            width: 400px;
            border: black 2px solid;
            float: left;
        }

        li {
            display: inline-block;
            background-color: cyan;
            padding: 5px;
            border: 1px solid #000;
        }

        p {
            padding-left: 40px;
        }
    </style>
    <script>
        window.onload = function () {
            function bangDing(dianji, fun) {
                var btn = document.getElementById(dianji);
                btn.onclick = fun;
            }
            //为id为btn01的按钮绑定一个单击响应函数
            bangDing("btn01", function () {
                // 创建一个“广州”节点,添加到#city下
                var chuntian = document.getElementById("bj");
                // 创建li元素节点
                var li = document.createElement("li");
                // 创建文本节点
                var gz = document.createTextNode("广州");
                // 将gz设置li的子节点
                li.appendChild(gz);
                // 获取id为chengshi的节点
                var city = document.getElementById("chengshi");
                // 将广州添加到city下
                city.appendChild(li);
            });
            //为id为btn02的按钮绑定一个单击响应函数
            bangDing("btn02", function () {
                // 将“广州”节点插入到#bj前面
                // 创建li元素节点
                var li = document.createElement("li");
                // 创建文本节点
                var gz = document.createTextNode("广州");
                var beijing = document.getElementById("bj");
                // 将gz设置li的子节点
                li.appendChild(gz);
                // 获取id为chengshi的节点
                var city = document.getElementById("chengshi");
                // 将广州添加到city下
                city.insertBefore(li , beijing);
            });
            // 为id为btn03的按钮绑定一个单击响应函数
            bangDing("btn03", function(){
                // 创建li元素节点
                var li = document.createElement("li");
                // 创建文本节点
                var gz = document.createTextNode("广州");
                // 将gz设置li的子节点
                li.appendChild(gz);
                // 获取id为bj的节点
                var beijing = document.getElementById("bj");
                // 获取id为chengshi的节点
                var city = document.getElementById("chengshi");
                city.replaceChild(li,beijing);
            });

        }

    </script>
</head>

<body>
    <div id="zong">
        <!-- 上部 -->
        <div class="shangbu">
            <p>你最喜欢哪个城市?</p>
            <ul id="chengshi">
                <li id="bj">北京</li>
                <li>上海</li>
                <li>西安</li>
                <li>四川</li>
            </ul>
        </div>

        <!-- 按钮 -->
        <div class="anniu">
            <button id="btn01">创建一个“广州”节点,添加到#city下</button>
            <button id="btn02">将“广州”节点插入到#bj前面</button>
            <button id="btn03">使用“广州”节点替换#bj节点</button>
            <button id="btn04">删除#bj节点</button>
            <button id="btn05">读取#city内的HTML代码</button>
            <button id="btn06">设置#bj内的HTML代码</button>
        </div>
    </div>
</body>

</html>
removeChild()

可以删除一个子节点;
语法:子节点.removeChild(子节点);
子节点.parentNode.removeChild(子节点);
removeChild()removeChild()removeChild()

.parentNode.removeChild()

自己删自己
.parentNode.removeChild()

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>day25-JavaScript 07 DOM对象</title>
    <!-- <link rel="stylesheet" href="../CSS/reset.css"> -->
    <style>
        #zong {
            margin: 150px 100PX;
        }

        .anniu button {
            width: 400px;
            padding: 5px;
            margin: 5px;
            margin-top: 0;
        }

        .anniu {
            width: 400px;
            float: left;
        }

        .shangbu {
            width: 400px;
            border: black 2px solid;
            float: left;
        }

        li {
            display: inline-block;
            background-color: cyan;
            padding: 5px;
            border: 1px solid #000;
        }

        p {
            padding-left: 40px;
        }
    </style>
    <script>
        window.onload = function () {
            function bangDing(dianji, fun) {
                var btn = document.getElementById(dianji);
                btn.onclick = fun;
            }
            //为id为btn01的按钮绑定一个单击响应函数
            bangDing("btn01", function () {
                // 创建一个“广州”节点,添加到#city下
                var chuntian = document.getElementById("bj");
                // 创建li元素节点
                var li = document.createElement("li");
                // 创建文本节点
                var gz = document.createTextNode("广州");
                // 将gz设置li的子节点
                li.appendChild(gz);
                // 获取id为chengshi的节点
                var city = document.getElementById("chengshi");
                // 将广州添加到city下
                city.appendChild(li);
            });
            //为id为btn02的按钮绑定一个单击响应函数
            bangDing("btn02", function () {
                // 将“广州”节点插入到#bj前面
                // 创建li元素节点
                var li = document.createElement("li");
                // 创建文本节点
                var gz = document.createTextNode("广州");
                var beijing = document.getElementById("bj");
                // 将gz设置li的子节点
                li.appendChild(gz);
                // 获取id为chengshi的节点
                var city = document.getElementById("chengshi");
                // 将广州添加到city下
                city.insertBefore(li, beijing);
            });
            // 为id为btn03的按钮绑定一个单击响应函数
            bangDing("btn03", function () {
                // 创建li元素节点
                var li = document.createElement("li");
                // 创建文本节点
                var gz = document.createTextNode("广州");
                // 将gz设置li的子节点
                li.appendChild(gz);
                // 获取id为bj的节点
                var beijing = document.getElementById("bj");
                // 获取id为chengshi的节点
                var city = document.getElementById("chengshi");
                city.replaceChild(li, beijing);
            });
            // 为id为btn04的按钮绑定一个单击响应函数
            bangDing("btn04", function () {
                // 获取id为bj的节点
                var beijing = document.getElementById("bj");
                // 获取id为chengshi的节点
                var city = document.getElementById("chengshi");
                // city.removeChild(beijing);
                beijing.parentNode.removeChild(beijing);
            });
        }

    </script>
</head>

<body>
    <div id="zong">
        <!-- 上部 -->
        <div class="shangbu">
            <p>你最喜欢哪个城市?</p>
            <ul id="chengshi">
                <li id="bj">北京</li>
                <li>上海</li>
                <li>西安</li>
                <li>四川</li>
            </ul>
        </div>

        <!-- 按钮 -->
        <div class="anniu">
            <button id="btn01">创建一个“广州”节点,添加到#city下</button>
            <button id="btn02">将“广州”节点插入到#bj前面</button>
            <button id="btn03">使用“广州”节点替换#bj节点</button>
            <button id="btn04">删除#bj节点</button>
            <button id="btn05">读取#city内的HTML代码</button>
            <button id="btn06">设置#bj内的HTML代码</button>
        </div>
    </div>
</body>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你想了解 JavaScript 实现的日历吗? JavaScript 可以通过 DOM 操作实现动态生成日历的功能。以下是一个简单的 JavaScript 日历实现示例: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JavaScript 日历示例</title> <style> table { border-collapse: collapse; width: 100%; } th, td { text-align: center; padding: 8px; border: 1px solid black; } th { background-color: #ddd; } td { height: 80px; } .today { background-color: yellow; } </style> </head> <body> <h1>JavaScript 日历示例</h1> <table> <thead> <tr> <th>日</th> <th>一</th> <th>二</th> <th>三</th> <th>四</th> <th>五</th> <th>六</th> </tr> </thead> <tbody id="calendar-body"> </tbody> </table> <script> const date = new Date(); const year = date.getFullYear(); const month = date.getMonth() + 1; const today = date.getDate(); const daysInMonth = new Date(year, month, 0).getDate(); const firstDay = new Date(year, month - 1, 1).getDay(); const calendarBody = document.getElementById('calendar-body'); let dateCells = ''; let day = 1; for (let i = 0; i < 6; i++) { dateCells += '<tr>'; for (let j = 0; j < 7; j++) { if (i === 0 && j < firstDay) { dateCells += '<td></td>'; } else if (day > daysInMonth) { break; } else { if (day === today) { dateCells += '<td class="today">' + day + '</td>'; } else { dateCells += '<td>' + day + '</td>'; } day++; } } dateCells += '</tr>'; if (day > daysInMonth) { break; } } calendarBody.innerHTML = dateCells; </script> </body> </html> ``` 这个示例会生成当前月份的日历,可以根据需要进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值