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

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日

悬赏问题

  • ¥50 有偿求qftp工具。能连接,下载文件,发送代码,windows环境,最好qt6 要qt creator写的
  • ¥70 刚刚看到一个人的网站居然是通过cname访问的
  • ¥15 Attributeerror:super object has no attribute '__sklearn_tags__'_'
  • ¥15 逆置单链表输出不完整
  • ¥15 宇视vms-B200-A16@R启动不了,如下图所示,在软件工具搜不到,如何解决?(操作系统-linux)
  • ¥500 寻找一名电子工程师完成pcb主板设计(拒绝AI生成式答案)
  • ¥15 关于#mysql#的问题:UNION ALL(相关搜索:sql语句)
  • ¥15 matlab二位可视化能否针对不同数值范围分开分级?
  • ¥15 已经创建了模拟器但是不能用来运行app 怎么办😭自己搞两天了
  • ¥15 关于#极限编程#的问题,请各位专家解答!