JavaScript之DOM查询

获取元素节点:通过document对象调用

1.getElementById():
通过id属性获取一个元素节点对象

2.getElementsByTagName():
通过标签名获取一组元素节点对象
可以用于获取当前节点下的指定标签名的所有子节点

3.getElementsByName()
通过name属性获取一组元素节点对象

Demo:

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>DOM查询</title>
    <link rel="stylesheet" href="../css/css.css">
    <script>
        window.onload = function () {
            var btn01 = document.getElementById('btn01');
            btn01.onclick = function () {
                //查找bj节点
                var bjEle = document.getElementById('bj');
                //innerText属性:获取元素内部的文本内容
                var text = bjEle.innerText;
                console.log(text);
                //innerHTML属性:获取元素内部的html代码
                var h = bjEle.innerHTML;
                console.log(h);
            }

            //查找所有li节点:
            var btn02 = document.getElementById('btn02');
            btn02.onclick = function () {
                // debugger;
                var liCollection = document.getElementsByTagName('li'); //返回的是li元素集合
                var len = liCollection.length;
                for (var i = 0; i < len; i++) { //循环遍历
                    console.log(liCollection[i].innerHTML);
                }
            }

            //查找name=gender的所有节点
            var btn03 = document.getElementById('btn03');
            btn03.onclick = function () {
                //  debugger;
                var genderCollection = document.getElementsByName('gender');
                for (var i = 0; i < genderCollection.length; i++) {
                    console.log(genderCollection[i].getAttribute('value'));
                }
            }


            //查找#city下所有li节点
            var btn04 = document.getElementById('btn04');
            btn04.onclick = function () {
                // debugger;
                var cityElement = document.getElementById('city');
                // var childNodes=cityElement.childNodes;//获取当前节点下的所有子节点            
                //getElementsByTagName():可以获取当前节点下的指定标签名的所有子节点

                var liCollection = cityElement.getElementsByTagName('li');
                for (var i = 0; i < liCollection.length; i++) {
                    console.log(liCollection[i].innerHTML);
                }
            }

            //查找#city下所有子节点
            var btn05 = document.getElementById('btn05');
            btn05.onclick = function () {
                //  debugger;
                var cityNode = document.getElementById('city');
                var nodeList = cityNode.childNodes;
                var len = nodeList.length;
                for (var i = 0; i < len; i++) {
                    console.log(nodeList[i].innerHTML);
                    // console.log(nodeList[i].nodeName); //获取节点的名称
                }
            }

            //返回#phone的第一个子节点
            var btn06 = document.getElementById('btn06');
            btn06.onclick = function () {
                debugger;
                var phoneElement = document.getElementById('phone');
                var firstChildNode = phoneElement.firstChild;
                if (firstChildNode != null) {
                    console.log(firstChildNode.innerText);
                }
            }


            //返回#bj的父节点
            var btn07=document.getElementById('btn07');
            btn07.onclick=function(){
            //  debugger;
             var bjLiNode=document.getElementById('bj');
             var bjParentNode=bjLiNode.parentNode;
             alert(bjParentNode.innerText);
            }


            //返回#android的前一个兄弟节点(元素节点或者文本节点)
            var btn08=document.getElementById('btn08');
            btn08.onclick=function(){
            //    debugger;
               var androidNode=document.getElementById('android');
               var previousSiblingNode= androidNode.previousSibling;//前一个兄弟节点(元素节点或者文本节点)
               //前一个兄弟元素节点,IE8以及以下版本不支持
            //    var previousSiblingNode=androidNode.previousElementSibling;
               alert(previousSiblingNode.innerHTML);
            }

            //返回#username的value属性值
            var btn09=document.getElementById('btn09');
            btn09.onclick=function(){
            var usernameInput=document.getElementById('username');
            
            /*
            读取元素的属性值:
            方式一:
            使用元素的getAttribute(attributeName)方法获取指定的属性值

            方式二:
             元素对象.属性名

            */
            

            // var val= usernameInput.getAttribute('value');

            //使用点语法快捷键读取属性值
            var val=usernameInput.value;
            console.log("val:"+val);

            //获取class 值
            var usernameInputClassName=usernameInput.className;
            console.log("usernameInputClassName:"+usernameInputClassName);
            }


            //设置#username的value属性值
            var btn10=document.getElementById('btn10');
            btn10.onclick=function(){
                // debugger;
                var usernameInput=document.getElementById('username');
                /*
                setAttribute(name,value):
                name:设置属性名
                value:设置属性值
                必须都要以字符串的形式进行传递

                */
                usernameInput.setAttribute('value','testUserName');
                var attributeVal=usernameInput.getAttribute('value');
            }

            //获取#bj文本内容
            var btn11=document.getElementById('btn11');
            btn11.onclick=function(){
               var bjNode=document.getElementById('bj');
            // alert(bjNode.innerHTML);
            // alert(bjNode.innerText);
            // alert(bjNode.firstChild.textContent);//获取文本节点的文本内容

            }

        }
    </script>
</head>

<body>
    <div id="total">
        <div class="inner">
            <p>
                你喜欢哪个城市?
            </p>

            <ul id="city">
                <li id="bj"><span>北京</span></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 class="hello" type="radio" name="gender" value="male" />
            Male
            <input class="hello" type="radio" name="gender" value="female" />
            Female
            <br>
            <br>
            name:
            <input type="text" name="name" id="username" class="username" value="abcde" />
        </div>
    </div>
    <div id="btnList">
        <div><button id="btn01">查找#bj节点</button></div>
        <div><button id="btn02">查找所有li节点</button></div>
        <div><button id="btn03">查找name=gender的所有节点</button></div>
        <div><button id="btn04">查找#city下所有li节点</button></div>
        <div><button id="btn05">返回#city的所有子节点</button></div>
        <div><button id="btn06">返回#phone的第一个子节点</button></div>
        <div><button id="btn07">返回#bj的父节点</button></div>
        <div><button id="btn08">返回#android的前一个兄弟节点</button></div>
        <div><button id="btn09">返回#username的value属性值</button></div>
        <div><button id="btn10">设置#username的value属性值</button></div>
        <div><button id="btn11">返回#bj的文本值</button></div>
    </div>
</body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值