节点属性

节点属性

在文档对象模型 (DOM) 中,每个节点都是一个对象。DOM 节点有三个重要的属性 :

  1. nodeName : 节点的名称;它返回一个字符串,其内容是给定节点的名字。是只读属性

  2. nodeValue :节点的值;这所谓的就是元素,就是给定节点的当前值nodevalue。

  3. nodeType :节点的类型;它返回的是一个整体,而这个数值代表的给定节点的类型。是只读的。

             节点类型(nodeType)    节点名字(nodeName)    节点值(nodeValue)
    元素节点         1                  标签名                 null
    文本节点         3                  #text                 文本
    注释节点         8                 #comment             注释的文字
    文档节点         9                 #document              null
    属性节点         2                  属性名                属性值
    
<body>
    <ul>我是ul里的文字<li id="box" class="abc">我是li里的文字</li><!-- 我是注释 --></ul>
    <script>
        // 1 获取ul
        var ul = document.getElementsByTagName("ul")[0];
        // 2 获取ul的全部子节点
        var childNodes = ul.childNodes;
        // 提示: 空白折叠压缩生成的空白符 会被高级浏览器认为是一个文本节点 IE反而不会有该问题
        for (var i = 0; i < childNodes.length; i++) {
            console.log(childNodes[i].nodeType) //3 1 8
        }
        /* nodeType属性表示节点的类型 总共有12种节点类型 我们需要记忆的 1 元素 2 属性 3 文本 8 注释 9 文档 */

        // 获取文本
        var textNode = childNodes[0];
        // 获取元素
        var elementNode = childNodes[1];
        // 获取注释
        var commetNode = childNodes[2];
        // 获取属性
        var attrNode = elementNode.getAttributeNode("id");
        // 获取文档
        var d = document;

        // 1 nodeType 
        console.log(textNode.nodeType);// 3
        console.log(elementNode.nodeType);// 1
        console.log(commetNode.nodeType); // 8
        console.log(attrNode.nodeType); // 2
        console.log(d.nodeType); // 9

        // 2 nodeName
        console.log(textNode.nodeName); // #text
        console.log(elementNode.nodeName); // 大写的标签名
        console.log(commetNode.nodeName); // #comment
        console.log(attrNode.nodeName); // id
        console.log(d.nodeName); // #document


        // 3 nodeValue
        console.log(textNode.nodeValue); // 文本内容字符串
        console.log(elementNode.nodeValue); // null
        console.log(commetNode.nodeValue); // 注释文本内容字符串
        console.log(attrNode.nodeValue); // 就是属性值
        console.log(d.nodeValue); // null

        // 过滤出所有的文本节点
        for (var i = 0; i < childNodes.length; i++) {
            if (childNodes[i].nodeType == 3) {
                console.log(childNodes[i])
            }
        }
        
        // 过滤出所有的元素节点中的span
        for (var i = 0; i < childNodes.length; i++) {
            if (childNodes[i].nodeName == "LI") {
                console.log(childNodes[i])
            }
        }
    </script>
</body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值