Zero.Galaxy 2022-01-19 13:28 采纳率: 57.1%
浏览 58
已结题

JS中DOM获取 注释节点 运行结果出错

代码:

<body>
    <!-- div节点 -->
    <div id="test" title="test">div节点</div>

    <script>
        /*
        1.nodeType属性:获取节点类型
            元素节点:1
            属性节点:2
            文本节点:3
            注释节点:8
            文档节点:9
        2.nodeName属性:获取节点名称
            元素节点:元素名称
            属性节点:属性名称
            文本节点:#text
            注释节点:#comment
            文档节点:#document
        3.nodeValue属性:获取节点值
            元素节点:null
            属性节点:属性值
            文本节点:文本内容
            注释节点:注释内容
            文档节点:null
        */
        console.log('-------获取元素节点-------');
        var obj=document.querySelector('#test');
        console.log(obj,typeof obj);
        console.log(obj.nodeType);
        console.log(obj.nodeName);
        console.log(obj.nodeValue);

        console.log('-------获取属性节点-------');
        var arrt=obj.getAttributeNode('id');
        console.log(arrt,typeof arrt);
        console.log(arrt.nodeType);
        console.log(arrt.nodeName);
        console.log(arrt.nodeValue);

        console.log('-------获取文本节点-------');
        var txt=obj.firstChild;
        console.log(txt,typeof txt);
        console.log(txt.nodeType);
        console.log(txt.nodeName);
        console.log(txt.nodeValue);

        console.log('-------获取注释节点-------');
        var com=obj.nextSibling;
        console.log(com,typeof com);//获取内容也出错
        console.log(com.nodeType);//在这里返回值为3,正确的返回值应该为8
        console.log(com.nodeName);//返回值为#text,正确的返回值应该为#comment
        console.log(com.nodeValue);//返回值为空

        console.log('-------获取文档节点-------');
        console.log(document.nodeType);
        console.log(document.nodeName);
        console.log(document.nodeValue);

    </script>
    
</body>
</html>

运行结果:

img

  • 写回答

1条回答 默认 最新

  • 在下月亮有何贵干 前端领域优质创作者 2022-01-19 13:43
    关注

    你说啥啊,你知不知道nextSibling是啥啊,先查一查是啥,是它下一个同胞节点,你说正确的返回值应该为#comment,你这都没有#comment这个元素


    你先把<!-- div节点 -->注释放在<div id="test" title="test">div节点</div>下面。
    然后把var com=obj.nextSibling改成var com=obj.nextSibling.nextSibling就得到你想要的了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 1月27日
  • 已采纳回答 1月19日
  • 创建了问题 1月19日

悬赏问题

  • ¥15 对于这个问题的代码运行
  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败