• DOM查询练习


    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script type="text/javascript">
    
    
    
            /* 
            定义一个函数,专门用来为指定元素绑定单击响应函数
                参数:
                    idStr 绑定单击响应函数的对象的id属性值
                    fun 事件的回调函数,当单击元素时,该函数将会被触发
             */
            function myClick(idStr,fun){
                 var btn = document.getElementById(idStr);
                btn.onclick = fun;
            }
    
    
            
            window.onload = function () {
                // ----------------------------按钮 1----------------------------------------------------------
    
                // 为id为btn01的按钮绑定一个单击响应函数
                var btn01 = document.getElementById("btn01");
                btn01.onclick = function () {
                    // alert("hello");
                    // 查找#bj节点
                    var bj = document.getElementById("bj");
                    // 打印bj
                    // innerHTML 通过这个属性可以获取到元素内部的html代码
                    console.log("bj.innerHTML:  " + bj.innerHTML);
    
                    // alert(bj.innerHTML);
                };
                // ----------------------------按钮 2----------------------------------------------------------
                // 为id为btn02的按钮绑定一个单击响应函数
                var btn02 = document.getElementById("btn02");
                btn02.onclick = function () {
                    //查找所有li的节点
                    // getElementByTagName()可以根据标签名来获取一组元素节点对象
                    // 这个方法会给我们返回一个类数组对象,所有查询到的元素都会封装到对象中
                    // 即使查询到的元素只有一个,也会封装到数组中返回
                    var lis = document.getElementsByTagName("li");
                    // 打印lis
                    // alert(lis.length);//li的长度:11
    
                    // 变量lis
                    for (var i = 0; i < lis.length; i++) {
                        console.log("lis[i].innerHTML:  " + lis[i].innerHTML);
                    }
    
                };
                // ----------------------------按钮 3----------------------------------------------------------
    
                //为id为btn03的按钮绑定一个单击响应函数
                var btn03 = document.getElementById("btn03");
                btn03.onclick = function () {
                    // 查找name=gender的所有节点
                    var inputs = document.getElementsByName("gender");
                    // alert(inputs.length);
                    for (var i = 0; i < inputs.length; i++) {
                        /* 
                        innerHTML用于获取元素内部的HTML代码的
                        对于自结束标签,这个属性没意义
                         */
    
    
                        /* 
                        如果需要读取元素节点属性,
                        直接使用元素.属性名
                           例子:元素.id 元素.name 元素.value
                           注意:class属性不能采用这种方式,
                               读取clss属性是需要使用元素.className
                         */
                        console.log("inputs : " + inputs[i].value);
                    }
                    // }
                };
               
    // ----------------------------按钮4:查找#city下所有li节点--------------------------------------------------------
    
                // 为id为btn04的按钮绑定一个单击响应函数
                var btn04=document.getElementById("btn04");
                btn04.onclick=function(){
    
                    var city=document.getElementById("city");//获取id为city的元素
    
                    // 查找#city下所有li节点
                    var lis = city.getElementsByTagName("li");
    
                //    console.log(lis.length);
                    for(var i=0;i<lis.length;i++){
                        console.log(lis[i].innerHTML);
                    }
    
                };
    // ----------------------------按钮5:返回#city的所有节点--------------------------------------------------------
    
    
                    // 为id为btn05的按钮绑定一个单击响应函数
                    var btn05=document.getElementById("btn05");
                    btn05.onclick=function(){
                        
                        // 获取id为city的节点
                        var city=document.getElementById("city");
                        // 返回#city的所有节点
    
                        /* 
                            childNodes属性会获取包括包括文本节点在呢的所有节点
                            根据DOM标签标签间空白也会当成文本节点
                            注意:在IE8及以下的浏览器中,不会将空白文本当成子节点,
                            所以该属性在IE8中会返回4个子元素而其他浏览器是9个
                         */
    
                        var cns=city.childNodes;
                        
                        // console.log(cns.length);
                        // for(var i=0; i<cns.length;i++){
                        //     console.log(cns[i]);
                        // }
    
    
                         /*children属性可以获取当前元素的所有子元素*/
                         
    
                        var cns2=city.children;
                        console.log(cns2.length);
    
                    };
    
    // ----------------------------按钮6:返回#phone的第一个子节点----------------------------------------------------
    
                        var btn06=document.getElementById("btn06");
                        btn06.onclick=function(){
                            var phone=document.getElementById("phone");
                            // phone.childNodes[0];
                            // firstChild可以获取到当前元素的第一个子节点(包括空白文本节点)
                            var first=phone.firstChild;
    
                            // firstElementChild可以获取当前元素的第一个子元素
                            // firstElementChild不支持IE8及以下的浏览器,如果需要兼容她们尽量不要使用
    
                            // first=phone.firstElementChild;
                            console.log(first.innerHTML);
                            
                        };
    // ----------------------------按钮7: 返回#bj的父节点-------------------------------------------------------------
                        myClick("btn07",function(){
                           
                        // 获取id为bj的节点
                        var bj=document.getElementById("bj");
    
                        // 返回#bj的父节点
                        var pn=bj.parentNode;
                        // console.log(pn.innerHTML);
    
                        /* innerText
                            -该属性可以获取到元素内部的文本内容
                            它和innerHTML类似们不同的是它会自动关机将html去掉
                         */
                        
                        console.log(pn.innerText);
                        }
                        );
                       
    // ----------------------------按钮8: 返回#android的前一个兄弟节点-------------------------------------------------
    
                        myClick("btn08",function(){
                        var and=document.getElementById("android");
                        // 返回#android的前一个兄弟节点(也可能获取到空白的文本)
                        var pre=and.previousSibling;
                        // console.log(pre.innerHTML);
    
                        // previousElementSibling获取前一个兄弟元素,IE8及以下不支持
                        // var ps=and.previousElementSibling;
                        console.log(pre);
                        }
                        );
    
    // ----------------------------按钮9: 读取#username的value属性值-------------------------------------------------
    
                         myClick("btn09", function () {
                            //  获取id为username的元素
                             var um=document.getElementById("username");
                            //读取um的value属性值
                            // 文本框的value属性值,就是文本框中填写的内容
                             console.log(um.value);
    
                }
                );
    // ----------------------------按钮10: 设置#username的value属性值-------------------------------------------------
    
                     myClick("btn10", function () {
                         var um = document.getElementById("username");
                         um.value="今天的天气真不错~~~~~~";
    
                }
                );
              
    // ----------------------------按钮11: 返回#bj的文本值------------------------------------------------------------
                     myClick("btn11", function () {
                    var bj=document.getElementById("bj");
                    // console.log(bj.innerHTML);
                    // console.log(bj.innerText);
    
                   /*  // 获取bj中的文本节点
                    var fc=bj.firstChild;
                    console.log(fc.nodeValue); */
    
                    console.log(bj.firstChild.nodeValue);
    
                                                                                                                                                                                   
                }
                );
                        
            };  
        </script>
    </head>
    
    <body>
        <div id="total">
            <div class="inner">
                <p>
                    你喜欢哪个城市
                </p>
    
                <ul id="city">
                    <li id="bj">北京</li>
                    <li>上海</li>
                    <li>东京</li>
                    <li>首尔</li>
                </ul>
                <br>
                <br>
                <p>
                    你喜欢哪款单机游戏?
                </p>
                <ul id="game">
                    <li id="rl">红警</li>
                    <li>实况</li>
                    <li>极品飞车</li>
                    <li>魔兽</li>
                </ul>
                <br />
                <br />
    
                <p>
                    你手机的操作系统是?
                </p>
                <ul id="phone"><li>IOS</li><li id="android">android</li><li>Windows Phone</li>
                </ul>
            </div>
            <div class="inner">
                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="abcde" />
            </div>
        </div>
        <div id="btnList">
            <div id="btn01"><button>查找#bj节点</button></div>
            <div id="btn02"><button>查找所有li节点</button></div>
            <div id="btn03"><button>查找name=gender的所有节点</button></div>
            <div id="btn04"><button>查找#city下所有li节点</button></div>
            <div id="btn05"><button>返回#city的所有节点</button></div>
            <div id="btn06"><button>返回#phone的第一个子节点</button></div>
            <div id="btn07"><button>返回#bj的父节点</button></div>
            <div id="btn08"><button>返回#android的前一个兄弟节点</button></div>
            <div id="btn09"><button>读取#username的value属性值</button></div>
            <div id="btn10"><button>设置#username的value属性值</button></div>
            <div id="btn11"><button>返回#bj的文本值</button></div>
        </div>
    </body>
    
    </html>
  • 相关阅读:
    js三种经典排序:冒泡排序、插入排序、快速排序
    CSS小技巧
    2017
    实际开发中的问题积累【积累】
    F.I.S本地环境的搭建教程
    移动端前端开发注意点(未完待续)
    【六】PHP正则表达式方法
    【五】PHP数组操作函数
    【三】php之梗
    【二】php常用方法
  • 原文地址:https://www.cnblogs.com/hr-7/p/14055606.html
Copyright © 2020-2023  润新知