jss html5-node.nodeType 属性用于表示节点的类型

在 JavaScript 中,node.nodeType 属性用于表示节点的类型。当 node.nodeType === Node.ELEMENT_NODE 时,表示该节点是一个元素节点(Element Node)。元素节点是 DOM 树中最常见的节点类型之一,用于表示 HTML 或 XML 文档中的元素。

以下是 node.nodeType 可能的值及其对应的节点类型:

表格

复制

nodeType 节点类型 描述
1 Node.ELEMENT_NODE 表示一个元素节点,例如 <div><img> 等。
2 Node.ATTRIBUTE_NODE 表示一个属性节点,例如 id="myId"
3 Node.TEXT_NODE 表示一个文本节点,例如元素中的文本内容。
4 Node.CDATA_SECTION_NODE 表示一个 CDATA 节点,用于包含不应由 XML 解析器解析的文本。
5 Node.ENTITY_REFERENCE_NODE 表示一个实体引用节点,例如 &copy;
6 Node.ENTITY_NODE 表示一个实体节点,很少在 DOM 中使用。
7 Node.PROCESSING_INSTRUCTION_NODE 表示一个处理指令节点,例如 <?xml-stylesheet type="text/xsl" href="style.xsl"?>
8 Node.COMMENT_NODE 表示一个注释节点,例如 <!-- This is a comment -->
9 Node.DOCUMENT_NODE 表示一个文档节点,例如整个 HTML 文档。
10 Node.DOCUMENT_TYPE_NODE 表示一个文档类型节点,例如 <!DOCTYPE html>
11 Node.DOCUMENT_FRAGMENT_NODE 表示一个文档片段节点,用于临时存储节点集合。

在你的代码中,node.nodeType === Node.ELEMENT_NODE 检查的是元素节点(Node.ELEMENT_NODE),其值为 1。这表示该节点是一个 HTML 元素,例如 <div><img><p> 等。

如果你需要遍历 editor 的所有子节点,并根据节点类型进行不同的处理,可以参考以下代码示例:

JavaScript

复制

复制代码
const editor = document.getElementById('editor');
let AllTxt = '';
const childNodes = editor.childNodes;

childNodes.forEach(node => {
    if (node.nodeType === Node.ELEMENT_NODE) {
        // 处理元素节点
        console.log(`Element: ${node.tagName}`);
        // 你可以根据元素类型进行进一步处理
        if (node.tagName === 'IMG') {
            // 处理图片元素
            const src = node.getAttribute('src') || '';
            AllTxt += `<img src='${src}' style='max-width:100%; max-height:500px;'>`;
        } else if (node.tagName === 'U') {
            // 处理下划线元素
            const textContent = node.textContent || '';
            AllTxt += `&lt;u&gt;${textContent}&lt;/u&gt;`;
        } else {
            // 处理其他元素
            AllTxt += node.outerHTML;
        }
    } else if (node.nodeType === Node.TEXT_NODE) {
        // 处理文本节点
        AllTxt += node.textContent;
    } else if (node.nodeType === Node.COMMENT_NODE) {
        // 处理注释节点
        AllTxt += `<!--${node.textContent}-->`;
    } else {
        // 其他类型的节点
        AllTxt += node.nodeValue || '';
    }
});

console.log(AllTxt);

代码说明:

  1. 遍历子节点

    • 使用 childNodes 获取 editor 的所有子节点。

    • 遍历每个子节点,根据 node.nodeType 判断节点类型。

  2. 处理不同类型的节点

    • 元素节点(Node.ELEMENT_NODE :根据元素类型(如 <img><u>)进行处理。

    • 文本节点(Node.TEXT_NODE:直接获取文本内容。

    • 注释节点(Node.COMMENT_NODE:处理注释内容。

    • 其他类型的节点:根据需要处理其他类型的节点。

  3. 最终结果

    • 将处理后的文本内容存储在 AllTxt 中,你可以将其输出或保存为文件。

这样,你可以根据节点类型进行不同的处理,最终生成符合需求的文本内容。

相关推荐
aesthetician4 小时前
Spotify 网页版前端技术全面解析
前端
咩图4 小时前
Sketchup软件二次开发+Ruby+VisualStudioCode
java·前端·ruby
Можно5 小时前
从零开始:Vue 框架安装全指南
前端·javascript·vue.js
蜗牛攻城狮5 小时前
CSS中的 `dvh` 与 `vh`: 深入理解视口单位
前端·css
啥都不懂的小小白5 小时前
Shell脚本编程入门:从零基础到实战掌握
前端·shell
东东5165 小时前
校园短期闲置资源置换平台 ssm+vue
java·前端·javascript·vue.js·毕业设计·毕设
qq_419854055 小时前
富文本编辑器
前端
悟能不能悟5 小时前
VUE的国际化,怎么实现
前端·javascript·vue.js
Mr Xu_6 小时前
解决 Vue + Axios 热更新导致响应拦截器重复注册的问题
前端·javascript·vue.js
岁岁种桃花儿6 小时前
NodeJs从入门到上天:什么是Node.js
前端·node.js