Text类属性

data属性

  1. //两个属性取得的文本属性是一样的
  2. oText.data = 'my name';
  3. console.log(oText.data);
  4. console.log(oText.nodeValue);

Text类方法

/**
*目的:运用appendData()
*参数:字符串。参数是文本节点没用
*功能:向文本节点末尾添加字符串
*返回值:undefined,说明函数没有返回值
*总结:
*/
textNode.appendData('字符串');

/**
*目的:运用insertData()
*参数:offset索引位置,字符串
*功能:在offset位置处,插入字符串
*返回值:undefined
*总结:
*/
textNode.insertData(offset, '字符串');

/**
*目的:运用deleteData()
*参数:offsett索引位置,count删除字符个数
*功能:删除指定位置的字符数量
*返回值:undefined。            tip:DOM命名规则中delete表示没有返回值,而remove有返回值  <-----
*总结:
*/
textNode.deleteData(offset, count);

/**
*目的:运用replaceData()
*参数:offsett, count, 字符串
*功能:先删除文本,在删除位置替换文本
*返回值:undefined
*总结:
*/
textNode.replaceData(offset, count, '字符串');

/**
*目的:运用createTextNode()
*参数:字符串
*功能:创建文本节点
*返回值:文本节点
*总结:文本是原样输出,没有转义字符。            这是document类里的方法 <-----
*/
var oH2 = document.createElement('h1');
var textNode.createTextNode('my name');
oH2.appendChild(textNode);

/**
*目的:运用subStringData()
*参数:offset, count
*功能:提取子串
*返回值:子串
*总结:
*/
TextNode.subStringData(offset, count);

/**
*目的:运用splitText()
*参数:offset
*功能:拆分成两个文本节点
*返回值:后一个拆分出来文本子节点
*总结:这真没啥用
*/
var oH2 = document.createElement('h2');
var createTextNode1 = document.createTextNode('my name ');                
oH2.appendChild(createTextNode1);
var splitText = oH2.firstChild.splitText(2);                
document.body.appendChild(oH2);        //

/**
*目的:运用normalize()
*参数:无
*功能:发现同胞文本子节点,合成一个文本子节点。发现空文本节点会删除。
*返回值:undefined
*总结:这是方法继承于Node类,不是Text类里的方法。因为浏览器解析永远不会创建两个同胞文本节点。
*/
var oH2 = document.createElement('h2');
var createTextNode1 = document.createTextNode('my name ');
var createTextNode2 = document.createTextNode('Chen Qian');
oH2.appendChild(createTextNode1);
oH2.appendChild(createTextNode2);
oH2.normalize();    //将两个节点合并成一个节点,因为两个同胞文本节点多此一举   
document.body.appendChild(oH2);

总结思想

  • 文本节点的方法中的offset位置,其实和数组的位置索引是一样的。本质上文本字符串是以数组的结构存储在内存里。因此感觉文本节点的方法和数组方法是一样的。