Dom对象和节点元素的获取

对象

对象:万物都是对象,对象去描述真实的世界

语法规则: {} 一对大括号用来定义一个对象
:冒号为属性赋值
, 逗号分隔属性

属性:姓名,年龄

方法:

<script>
//name,age属于对象属性
var a={name:"张三",age:12};
console.log(a.name)
<script />

方法的使用

<script>
    var laoWang = {name:"张三",age:15,chart:function(){
    console.log("我正在聊天!");
    },runing:function(){
    console.log("我正在跑步!");
    }};
    laoWang.chart();
    laoWang.runing();
</script>
Dom

Dom: document,每个载入游览器的html文档都会成为document对象,利用它可对html页面中的所有元素进行访问。提供:添加,移动,改变或移除结构文档的方法属性

  1. getElementById():返回对拥有指定id的第一个对象的引用
  2. getElementsByTagName():返回带指定名称的对象集合
  3. getElementsByName():返回带有指定名称的对象集合
  4. document.querySelector的用法
<body>
        <input type="text" id="test"/>
        <input type="text" id="text2"  name="moblie"/>
        <input type="text" id="text3" />
        <input type="text" id="text4" />
        <input type="text" id="text5" class="kk" />
        <script>
            var d1 = document.getElementById("test");
                d1.value="123";
            var inputs = document.getElementsByTagName("input");
            inputs[2].value="大宝";
            var inputs = document.getElementsByTagName("input");
            inputs[3].value="二宝";
            var inputs = document.getElementsByTagName("input");
            inputs[4].value="三宝";

            //获取name="moblie"的所有集合
            var inputs2=document.getElementsByName("moblie");
            //name="moblie"的第一个input赋值
            inputs2[0].value="宝宝"

            //获取class=kk的所有集合
            var inputs3 = document.getElementsByClassName("kk");
            inputs3[0].value="kk";

            //querySelector的写法
            document.querySelector("#test").value="aaa";

            document.querySelector(".kk").value="kkk";

            document.querySelector("[name=moblie]").value="moblie";
        </script>
    </body>
````
5. 元素对象的innerHTML属性可设置或返回单元格的开始标签和结束之间的HTML





<div class="se-preview-section-delimiter"></div>

```html
<script>
//当js代码上面时,要使用onload
            window.onload=function(){
                var bnt1 = document.querySelector("#bnt1");
                function changeSp(){
                    document.querySelector("span").innerHTML="百度";
                }
                bnt1.onclick = changeSp;

                var bnt2 = document.querySelector("#bnt2");

                var show = document.querySelector("#show");
                function showInput(){
                    var str="";
                    var inputs = document.querySelectorAll("input");
                    for(var i = 0;i<inputs.length;i++){
                        str = str+inputs[i].value +"<br>";  
                    }
                    show.innerHTML=str;
                }   
                bnt2.onclick = showInput;

                var bnt3 = document.querySelector("#bnt3");

                function showSeason(){
                    var str2 = "";
                    var inputs = document.querySelectorAll(".season");
                    for(var i=0;i<inputs.length;i++){
                        str2 = str2 + inputs[i].value+"<br>";
                            }

                        show.innerHTML=str2

                }

                bnt3.onclick = showSeason;

            }
        </script>
Window对象的常用方法

setTimeout(fn,millsec)在指定毫秒数后调用函数或计算表达式
setInterval(fn,millisec)按照指定的周期(以毫秒计)来调用函数或表达式,循环执行多次

    <script>
            onload=function(){
                var input1 = document.querySelector("#name");
                function change(){
                    input1.value+=1;
                    console.log("1111");

                }
                //每2s执行一次change
                setInterval(change,2000)

            }
    </script>

clearInterval()停止setInterval;
clearTimeout()停止clearTimeout;

<script>
            onload=function(){
                var input1 = document.querySelector("#name");
                function change(){
                    input1.value+=1;
                    console.log("1111");

                }
                //每2s执行一次change
                var xbz =setInterval(change,2000);

                //运行5秒后执行clearInterval
                var xbz2 =setTimeout(function(){
                    //清除xbz循环计数器
                    clearInterval(xbz);
                },5000)

                //当运行到第三秒时,就会清除xbz2;
                setTimeout(function(){
                    clearTimeout(xbz2)

                },3000);
            }
    </script>
    <body>
        <input type="text" id="name"/>


    </body>
Dom规定和结构


1. 整个文档是一个文档节点
2. 每个HTML标签是一个元素节点
3. 包含在HTML元素中的文本是文本节点
4. 每个HTML属性是一个属性节点
5. 注释属于注释节点

使用层次关系访问结节

  1. parentNode:返回节点的父节点
<script>
        //父节点为body
        var node1 = document.getElementsByTagName("ul")[0];
        console.log(node1.parentNode);
        </script>
  1. childNodes返回子节点的集合

<script>
    var node1 = document.getElementsByTagName("ul")[0];
            console.log(node1.childNodes);
            /*结果:
             * [text, li, text, li, text, li, text]
             * 
             */

<script/>
  1. firstChild:返回节点的第一个子节点,最普遍的用法是访问该元素的文本节点
    <ul>
            <li id="a"></li>
            <li id="b"></li>
            <li id="c"></li>
        </ul>
        <script>
            var node1 = document.getElementsByTagName("ul")[0];
            node1.firstChild.nextSibling.innerHTML=123;
            console.log(node1.firstChild.nextSibling);

        </script>
  1. nextSibling的下一个节点
  2. previousSibling:上一个节点
  3. 获取某个节点的属性值:getAttribute(“属性名”)
  4. 设置某个节点的属性值:setAttribute(“属性名”,”属性值”)
<script>
            var node1 = document.getElementsByTagName("ul")[0];

            console.log(node1.firstElementChild.getAttribute("xxyy"));
        //设置属性
        node1.firstElementChild.setAttribute("aaa","123");  
        </script
节点的创建
  1. createElement(tagName):创建一个名为:tagName的新元素节点
  2. ANode.addpendChild(BNode):把B节点追加至A节点的末尾
  3. insertBefore(ANode,BNode):把A节点插入到B节点之前
    4.removeChild(h3):将h3标签移除
    5.replacechile(newNode,oldNode):用newNode来替换oldNode
    <h3 id="h3">oldNode</h3>
        <script>
            //创建一个h1节点
            var node1 = document.createElement("h1");
            node1.innerHTML="诗和远方";

            var by = document.querySelector("body");
            //body添加一个子节点,
            by.appendChild(node1);

            var h2 = document.createElement("h2");
            h2.innerHTML="美好的生活";
            //将h2插入到h1的前面
            by.insertBefore(h2,node1);

            var h3 = document.createElement("h2");
            h3.innerHTML="美好的生活2";
            by.insertBefore(h3,h2);
            //移除h3标签
            by.removeChild(h3);

            var oldNode = document.querySelector("#h3");
            var newNode = document.createElement("h3");
            newNode.innerHTML="newNode";
            //用newNode替换oldNode
            by.replaceChild(newNode,oldNode);
        </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值