JavaScript HTML DOM Node对象

HTML文档中的每一个成员都是一个节点对象,节点对象具有自己的属性和方法。

找到HTML节点和Body节点

document.documentElement  -> html标签

可返回存在于 XML 以及 HTML 文档中的文档根节点

document.body  ->body标签

对 HTML 页面的特殊扩展,提供了对 <body> 标签的直接访问。

如果我们要对页面上添加显示元素,一般来说会使用这种方式

我们要注意的区别:

document.documentElement.clientHeight:它拿到的是整个窗口高度

document.body.clientHeight:拿到内容的高度

Node对象的属性与方法总表

查询节点

 

 

方法

getElementById();

返回对拥有指定 id 的第一个对象的引用。

getElementsByName()

返回带有指定名称的对象集合。

getElementsByTagName()

返回带有指定标签名的对象集合。

getElementsByClassName();

返回带有指定类名的对象集合

属性

parentNode

父节点

firstChild

列表中的第一个节点

lastChild

列表中的最后一个节点

childNodes

所有子节点的列表

previousSibling

上一个兄弟节点

nextSibling

下一个兄弟节点

增加节点

 

 

 

appendChild()

追加节点

insertBefore()

插入节点

修改节点

 

 

 

replaceChild()

替换节点

删除节点

 

 

 

removeChild()

删除节点

创建节点

 

 

 

createElement()

创建一个元素节点 

createTextNode() 

创建一个文本节点

setAttribute()

给某个节点添加一个属性

getAttribute()

获取某个节点属性的值。

节点信息

 

 

 

nodeName

节点名称

nodeValue

节点值

nodeType

节点类型

 节点实例

查询节点:

<ul id="parent">
	<li>第一行</li><li id="two">第二行</li><li>第三行</li><li>第四行</li>
</ul>
			//查询two的父节点
                //>>1. 获取two节点
                    var two = document.getElementById("two");
                
                //>>2. 查询two的父节点
                    var parObj = two.parentNode;
                    log(parObj);
            
            
            //查询parent中第一个子节点
                
                //>>1. 找到parent
                    var parent = document.getElementById("parent");
                //>>2. 找第一个子节点
                    log(parent.firstChild);
            
            //查询parent中第最后一个子节点
                
                //>>1. 找到parent
                    var parent = document.getElementById("parent");
                //>>2. 找最后一个子节点
                    log(parent.lastChild);
            
            
            //查询所有子节点列表: 
            
                //>>1. 找到parent
                    var parent = document.getElementById("parent");
                
                //>>2. 所有子节点
                    log(parent.childNodes);
                    
            //查找two的上一个兄弟
            
                //>>1. 获取two节点
                    var two = document.getElementById("two");
                
                //>>2. 查找two的上一个兄弟
                    var preObj = two.previousSibling;
                    log(preObj);

增加节点

   <ul id="parent">
            <li>第一行</li>
            <li id="two">第二行</li>
            <li>第三行</li>
            <li>第四行</li>
        </ul>
            //需求: 在parent中添加一个新节点
                
                //>>1. 创建一个新节点;
                    
                    //>>1.1 创建元素节点
                        var liobj = document.createElement("li");
                                            
                    //>>1.2 创建属性节点
                        liobj.className = "xxx";
                        
                    //>>1.3 创建文本节点
                        liobj.innerHTML = "<p>我是新增的段落</p>";
                        
                //>>2. 把新节点添加到parent中
                    
                    //>>2. 1 获取parent节点
                        var parent = document.getElementById("parent");
                    //>>2. 2 在parent中追加新节点
                        parent.appendChild(liobj);
            
            //需求:在two节点之前插入新节点
            
                //>>1. 创建新节点
                    //>>1.1 创建元素节点
                        var liobj = document.createElement("li");
                                            
                    //>>1.2 创建属性节点
                        liobj.className = "yyy";
                        
                    //>>1.3 创建文本节点
                        liobj.innerHTML = "我是新节点";
                
                //>>2. 找到要在哪个节点之前添加
                    
                    var two = document.getElementById("two");
                
                //>>3. 具体添加
                    //>>3. 1 获取parent节点
                        var parent = document.getElementById("parent");
                    
                    //>>3. 2具体添加
                        parent.insertBefore(liobj,two);

修改节点

<ul id="parent">
            <li>第一行</li>
            <li id="two">第二行</li>
            <li>第三行</li>
            <li>第四行</li>
        </ul>
  
            //需求: 用新节点替换two节点
                
                //>>1. 创建新节点
                    //>>1.1 创建元素节点
                        var liobj = document.createElement("li");
                                            
                    //>>1.2 创建属性节点
                        liobj.className = "xxx";
                        
                    //>>1.3 创建文本节点
                        liobj.innerHTML = "<p>我是新增的段落</p>";
                
                //>>2. 获取要替换的节点
                    
                    var two = document.getElementById("two");
                
                //>>3. 替换
            
                    //>>3.1 获取父元素
                    var parent = document.getElementById("parent");
                    
                    //>>3.2 用新元素替换旧元素
                        parent.replaceChild(liobj,two);
                //>>4. 替换属性节点
                
                    liobj.className = "aaa";

删除节点

  <ul id="parent">
            <li>第一行</li>
            <li id="two">第二行</li>
            <li>第三行</li>
            <li>第四行</li>
        </ul>
    
  			//需求: 删除two节点
            
                //>>1. 获取父元素
                    var parent = document.getElementById("parent");
                //>>2. 删除指定节点
            
                    //>>2.1 获取要删除的节点
                        var two = document.getElementById("two");
                        
                    //>>2.2 删除
                        parent.removeChild(two);

			//需求: 删除parent中所有节点
            
                //>>1. 获取父元素
                    var parent = document.getElementById("parent");
                    
                //>>2. 获取父元素中所有的子元素
                    var child = parent.childNodes;
                    
                //>>3. 删除子元素
                    
                    //>>3.1 遍历子元素
                        for(var i=child.length-1; i>=0; i--){
                            
                            //>>3.2删除所有子元素
                                parent.removeChild(child[i]);
                        }
            

不同类型的元素节点信息

nodeName

nodeValue

nodeType

Element(元素)

标签名称

null

1

Attribute(属性)

属性的名称

属性的值

2

Text(文本)

#text

文本的内容

3

innerHTML与innerText

innerHTML  可以操作元素对象中的HTML代码(带有标签的文本)

获取文本 

节点对象.innerHTML

设置文本 

节点对象.innerHTML =

innerText  可以操作元素对象中文本(不带标签的纯文本)

获取文本 

节点对象.innerTexL

设置文本 

节点对象.innerTex =

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时小浅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值