JavaScript之DOM节点类型 、遍历节点、节点的属性以及节点方法

先介绍一下节点类型都有哪些:

一、节点类型

节点类型    属性nodeType返回值    
元素节点1
属性节点2
文本节点3
注释节点(comment)8
document9
DocumentFragment11
所以一般我们获取节点类型用  nodeType

二、遍历节点树

这种遍历可以遍历  文本类节点、注释节点、元素节点等。  任何浏览器都好使。

<div >
    <strong></strong>
    <span></span>
    <em></em>
</div>
 parentNodes ——>父节点(最顶端的parentNode为#document);
var strong = document.getElementsByTagName('strong')[0];  
console.log(strong.parentNode);  

//strong.parentNodes ————div

//strong.parentNode.parentNode ————body

//strong.parentNode.parentNode.parentNode ————html

//strong.parentNode.parentNode.parentNode .parentNode————document
childNodes ——> 子节点们
var div = document.getElementsByTagName('div')[0];
console.log(div.childNodes);

   

    firstChild ——>第一个子节点
var div = document.getElementsByTagName('div')[0];
console.log(div.firstChild);

    lastChild ——> 最后一个子节点
var div = document.getElementsByTagName('div')[0];
console.log(div.lastChild);

    nextSibling ————>后一个兄弟节点
var strong  = document.getElementsByTagName('strong')[0];
console.log(strong.nextSibling);


    previousSibling ——>前一个兄弟节点 
var strong  = document.getElementsByTagName('strong')[0];
console.log(strong.previousSibling);


三、基于元素节点数的遍历

遍历元素节点。

除了children以外,其他遍历ie9以下不兼容

<div >
    <strong></strong>
    <span></span>
    <em></em>
</div>
 parentElement ——> 返回当前元素的父元素节点(IE不兼容)
var strong = document.getElementsByTagName('strong')[0];  
console.log(strong.parentElement);


    children ——> 只返回当前元素的元素子节点

var div = document.getElementsByTagName('div')[0];
console.log(div.children);


node.childElementCount === node.children.length 当前元素节点的子元素节点个数(IE不兼容)
var div = document.getElementsByTagName('div')[0];
console.log(div.children.length);


    firstElementChild ——> 返回的是第一个节点(IE不兼容)
var div = document.getElementsByTagName('div')[0];
console.log(div.firstElementChild);

    lastELementChild ————>返回的是最后一个元素节点(IE不兼容)
var div = document.getElementsByTagName('div')[0];
console.log(div.lastElementChild);

    nextElementSibling / previousElementSibling ——> 返回后一个/前一个兄弟元素节点(IE不兼容)
var strong = document.getElementsByTagName('strong')[0];  
console.log(strong.nextElementSibling); 
console.log(strong.previousElementSibling);

四、节点的四个属性

    nodeName

        元素的标签名,返回字符串,以大写的形式表示,只读

var strong  = document.getElementsByTagName('strong')[0];
console.log(typeof(strong.nodeName) + strong.nodeName);

    nodeValue

        text节点或Comment节点的文本内容,可读写

<div><!-- 我是注释节点内容 -->
    <span></span>
    <strong></strong>
    <em></em>
</div>


    nodeType

        该节点类型,只读  (返回以上节点类型后面对应的值)

var strong  = document.getElementsByTagName('strong')[0];
console.log(strong.nodeType);

 对应最上面表格  为元素节点

    attributes

        Element节点的属性集合  ,属性值可以改,但属性名不可以改

<div class="demo"; id = "index">
        <span></span>
        <strong></strong>
        <em></em>
</div>


五、节点的一个方法

  Node.hasChildNodes();   是否有孩子节点。有:true;没有:false
var div = document.getElementsByTagName('div')[0];
console.log(div.hasChildNodes());



<注:以上代码只展示了关键代码>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值