JavaScript节点操作

本文深入探讨了DOM操作的基本概念,包括如何使用DOM API进行节点的创建、修改、删除和查找,以及如何通过节点属性和方法实现元素的动态管理。通过实例演示了如何遍历节点、设置属性、创建和添加新节点、以及执行节点替换和插入操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.使用dom.

1.nodeName 返回类型string //节点名称,根据节点的类型而定义;
2.nodeVale 返回类型string //节点的值,同样根据节点的类型而定义;
3.nodeType 返回类型number //节点类型,常量值之一;
4.fistChild 返回类型Node     //指向childNodes列表中第一个节点;
5.lastChild 返回类型Node //指向childnodes列表中的最后一个节点;
6.childNodes 返回类型Nodelist //所有子节点的列表,方法item(I)可以访问第I+1节点;
7.parentNode 返回类型node //指向节点的父节点,如果已是根节点,则返回null;
8.previousSibling 返回类型Node //指向前一个兄弟节点,如果该节点已经是第一个节点,则返回null;
9.nextSibling 返回类型Node //指向后一个兄弟节点,如果该节点已经是第一个节点,则返回null;
10.hasChildNdodes() 返回类型Boolean //当childNodes包含一个或者多个节点时,返回true;
11.attributes 返回类型nameNodemap //包换一个元素特性的Attr对象仅用于元素节点;
12.appendChild(node) 返回类型node //将node节点添加到childnodes的末尾;
13.removeChild(node) 返回类型node //从childnodes中删除node节点;
14.replaceChild(newnode,oldnode)返回类型node //将childnodes中的oldnode节点替换成newnode节点;
15.insertBefore(newnode,oldnode) 返回类型 node //在childNodes中refonde节点之前插入newnode节点;    

2.检测节点的类型 .

注:通过nodeType属性可以检测出节点的类型,该属性返回的一个代表节点类型的整数值,总共有12个可取的值:如alert(document.nodeType); 显示值为9,而真正有用的,就三种节点;
    (1).元素节点的nodeType值为1;
    (2).属性节点的nodeType值为2;
    (3).属性节点的nodeType值为3;

3.利用父子兄弟关系查找节点.

childNodes属性来访问元素节点所有包含的文本节点,那么在获取了某个节点之后.可以通过父子关系利用hasChildNodes()方法和childNodes属性获取该节点所包含的所有子节点;

    列子:
                    function mymydom(){
                var ul =document.getElementById("mylist");  //获取<UL>标签
                var DOMstring = "";
                if(ul.hasChildNodes()){     //判断是否有子节点
                    var ch = ul.childNodes;
                    for(var i=0;i<ch.length;i++){   //逐一查询;
                        DOMstring += ch[i].nodeName+"\n";
                    }
                    alert(DOMstring);
                }
            }

                body部分:
                        <ul id="mylist">
                            <li>糖醋排骨</li>
                            <li>泡菜</li>
                            <li>水煮鱼</li>
                            <li>麻婆豆腐</li>
                        </ul>

4.设置节点属性

        1.getAttribute();
        2.setAttribute();  

5.创建和添加节点

        1.首先利用 document.createElement(); 
        在利用createTextNode()方法创建文本节点..并利用appendChild()方法把它添加到DIV 节点的childNodes列表的最后;
                var div = document.createElement("div");  //创建一个DIV;
                var oot =document.createTextNode("天气真好") //创建一个文本节点
                    div.appendChild(oot); //把文本节点放到div里面
                     document.body.appendChild(div);   //在把div放到HTML中;

6.删除节点; removeChild();

    function deleteP(){
        var oP = document.getElementsByTagName("p")[0];
        oP.parentNode.removeChild(oP);  // 删除节点
    }
            body部分:
                <p>这行文字你看不到</p>

7.替换节点; replaceChild();

        window.onload = function(){
        function replaceP(){
            var oldP = document.getElementsByTagName("p")[0];
            var newP = document.createElement("p");//创建新的节点
            var otext = document.createTextNode("德玛西亚");
            newP.appendChild(otext);
            oldP.parentNode.replaceChild(newP,oldP);//替换节点
        }
                replaceP();
    }
        body部分:
            <p>我被替换了</p>;

8.在特定的节点前插入节点; insertBefore();

        window.onload = function(){
        function insertP(){
            var oldP = document.getElementsByTagName("p")[0];
            var newP = document.createElement("p");//创建新的节点
            var otext = document.createTextNode("德玛西亚");
            newP.appendChild(otext);
            oldP.parentNode.insertBefore(newP,oldP);//插入节点
        }
                    insertP();
    }   

                body部分:
                <p>插入到这行之前</p>;

9.在特定的节点插入节点;insertBefore;

        window.onload = function(){
            function insertAfter(newElement,targetElement){
                var oparent = targetElement.parentNode;  //首先找到目标元素的父元素
                if(oparent.lastChild == targetElement){  //判断如果目标元素是最后一个子元素了
                    oparent.appendChild(newElement);    //直接加到子元素的列表最后
                之前}else{                                    
                    oparent.insertBefore(newElement,targetElement.nextElementSibling);
                }                                       //插入到目标元素的下一个兄弟元素
            }
            function inserP(){
                var ooldP = document.getElementById("mytarget");
                var onewP = document.createElement("P");//新建一个节点
                var otext = document.createTextNode("德玛西亚");
                onewP.appendChild(otext);
                insertAfter(onewP,ooldP);//插入节点
            }
            inserP();
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值