TextNode是HTML DOM节点类型之一,Text类型将文本字符串表示为DOM树中的结点,Text对象提供了对Element和Attr类型节点文本内容操作的接口。
1. Text对象属性
1.1 获取对象值:data、nodeValue
data属性和nodeValue属性都可以获取Text对象的值,即:节点的文本内容。不同的是,nodeValue属性除了可以获取对象值外,还可以设置对象值,设置值对文本进行修改后会立刻在DOM上表现出来。
var p = document.createElement('p');
var textNode = p.firstChild;
textNode.data;
textNode.nodeValue
textNode.nodeValue = 'itbilu.com';
1.2 获取兄弟节点:nextSibling、previousSibling
要获取文本节点的兄弟节点,可以使用其nextSibling和previousSibling属性,前者会获取其下一个兄弟节点,后者则会获取其前一个兄弟节点。Text类型的兄弟节点也是一个Text类型节点。
1.3 节点类型与节点名:nodeType、nodeName
nodeType属性和nodeName属性都继承自父类型Node类型,分别表示Text类型节点的节点类型和节点名,其值分别是:3和"#text"。
1.4 父节点属性:parentNode
获取Text类型节点的父节点,可以使parentNode属性,该属性的返回值是一个Element类型节点。
2. Text对象方法
2.1 文本添加与插入:appendData()、insertData()
text.appendData(string);
text.insertData(offset, string);
向Text追加字符串文本可以使用appendData()方法,该方法接受一个字符串类型参数。
如果不是向文本节点末尾追加内容,而是文本的指定位置插入内容,可以使用insertData()方法。该方法接受两个参数,offset是一个整数,表示偏移量,要插入的字符串string会在偏移量之后插入。
2.2 文本添加与插入:deleteData()、replaceData()
text.deleteData(offset, count);
text.replaceData(offset, count, string);
需要对删除部分文本节点内容时,可以使用deleteData()方法,该方法接受两个整型参数,分别表示开始删除的位置offset和要删除的字符数count。
除了对文本内容进行删除操作,有时还需要对文本内容进行替换。替换文本内容的方法是replaceData(),该方法接受三个参数,分别表示开始替换的位置offset、要替的字符数count及要替换后的内容string。
2.3 文分隔与截取:splitText()、substringData()
text.splitText([index]);
text.substringData(offset, count);
splitText()方法会对Node节点进行分隔,分隔后会产生一个新的Node类型的节点。该方法接受一个可选整型参数index表示开始分隔的位置。
Node对象还提供了截取子字符串的方法substringData(),该方法有两个整型参数,分别表示开始截取的位置offset和要截取的字符数count。