DOM之节点层级-Text类型

 一 操作方法

只要开始标签和结束标签之间有内容,就会创建一个文本节点

  • appendData(text):向节点末尾添加文本text
  • deleteData(offset, count):从位置offset开始删除count个字符
  • insertData(offset, count):在位置offset插入text
  • replaceData(offset, count, text):用text替换从位置offset到offset+count的文本
  • splitText(offset):在位置offset将文本节点拆分为两个文本节点
  • substringData(offset, count):提取从位置offset到offset+count的文本
  • length属性:获取文本节点中包含的字符数量
    • 返回:等于nodeValue.length 和 data.length

二 创建文本节点:document.createTextNode()

  • 使用:用来创建新文本节点
  • 参数:要插节点的文本
let element = document.createElement("div"); 
element.className = "message"; 
let textNode = document.createTextNode("Hello world!"); 
element.appendChild(textNode); 
document.body.appendChild(element); 

三 规范化文本节点

  • normalize():可以合并相邻的文本节点
    • 使用:在包含两个或多 个相邻文本节点的父节点上调用
    • 在包含两个或多个相邻文本节点的父节点上调用 normalize()时,所有同胞文本节点会被合并为一个文本节点
    • 这个 文本节点的nodeValue就等于之前所有同胞节点 nodeValue 拼接在一起得到的字符串
let element = document.createElement("div"); 
element.className = "message"; 
let textNode = document.createTextNode("Hello world!"); 
element.appendChild(textNode); 
let anotherTextNode = document.createTextNode("Yippee!"); 
element.appendChild(anotherTextNode); 
document.body.appendChild(element); 
alert(element.childNodes.length); // 2 
element.normalize(); 
alert(element.childNodes.length); // 1 
alert(element.firstChild.nodeValue); // "Hello world!Yippee!" 

四 拆分文本节点

  • splitText()
    • 使用:可以在指定的偏移位置拆分nodeValue,将一个文本节点拆分成两个文本节点
    • 场景:用于从文本节点中提取数据的DOM解析技术
    • 拆分:
      • 原节点包含开头到偏移位置前的文本
      • 新文本节点包含剩下的文本
    • 返回: 新的文本节点,具有与原来的文本节点相同的parentNode
let element = document.createElement("div"); 
element.className = "message"; 
let textNode = document.createTextNode("Hello world!"); 
element.appendChild(textNode); 
document.body.appendChild(element); 
let newNode = element.firstChild.splitText(5); 
alert(element.firstChild.nodeValue); // "Hello" 
alert(newNode.nodeValue); // " world!" 
alert(element.childNodes.length); // 2 
// 在这个例子中,包含"Hello world!"的文本节点被从位置 5 拆分成两个文本节点。位置 5 对应"Hello"和"world!"之间的空格,因此原始文本节点包含字符串"Hello",而新文本节点包含文本" world!"(包含空格)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值