DOM文本节点TEXT

定义

  文本节点由Text类型表示,包含的是纯文本内容,纯文本内容中的HTML字符会被转义。

特征 

  nodeType:3
  nodeName:#text
  nodeValue:节点所包含的文本
  parentNode:Element节点
  childNode:没有子节点

<div class="box" id="box">test</div>
<script>
var oBox = document.getElementById(‘box‘);
var oTest = oBox.firstChild;
//3 #text test
console.log(oTest.nodeType,oTest.nodeName,oTest.nodeValue);
//<div> []
console.log(oTest.parentNode,oTest.childNodes);
</script>

  [注意]每个可以包含内容的元素最多只能有一个文本节点,而且必须确实有内容存在

    [a]<div></div>(没有内容,也就没有文本节点)

<div class="box" id="box"></div>
<script>
var oBox = document.getElementById(‘box‘);
var oTest = oBox.firstChild;
console.log(oTest);//null
</script>
        [b]<div> </div>(有空格,因此有一个文本节点)
<div class="box" id="box"> </div>
<script>
var oBox = document.getElementById(‘box‘);
var oTest = oBox.firstChild;
//IE8-浏览器为null,因为其不识别空白文本节点;其他浏览器为" "
console.log(oTest);
</script>

    [b]<div> </div>(有空格,因此有一个文本节点)

<div class="box" id="box"> </div>
<script>
var oBox = document.getElementById(‘box‘);
var oTest = oBox.firstChild;
//IE8-浏览器为null,因为其不识别空白文本节点;其他浏览器为" "
console.log(oTest);
</script>

属性

【data】

  文本节点的data属性与nodeValue属性相同

<div class="box" id="box">test</div>
<script>
var oBox = document.getElementById(‘box‘);
var oTest = oBox.firstChild;
//test test true
console.log(oTest.nodeValue,oTest.data,oTest.data == oTest.nodeValue);
</script>

【length】

  文本节点的length属性保存着节点字符的数目,而且nodeValue.length、data.length也保存着相同的值

<div class="box" id="box">test</div>
<script>
var oBox = document.getElementById(‘box‘);
var oTest = oBox.firstChild;
//4 4 4
console.log(oTest.length,oTest.nodeValue.length,oTest.data.length);
</script>

方法

【createTextNode()】

  createTextNode()方法用于创建文本节点,这个方法接收一个参数——要插入节点中的文本。在创建新文本的同时,也会为其设置ownerDocument属性

<div class="box" id="box">123</div>
<script>
var oBox = document.getElementById(‘box‘);
var oText = document.createTextNode(‘hello world!‘);
oBox.appendChild(oText);
console.log(oBox.innerHTML);//123hello world!
</script>

    [注意]一般情况下,每个元素只有一个文本节点,但在某些情况下也可能包含多个文本子节点。如果两个文本节点是相邻的同胞节点,那么这两个节点中的文本就会连起来显示,中间不会有空格。

<div class="box" id="box">123</div>
<script>
var oBox = document.getElementById(‘box‘);
var oText = document.createTextNode(‘hello world!‘);
oBox.appendChild(oText);
console.log(oBox.innerHTML);//123hello world!
var oText2 = document.createTextNode(‘<text2>‘);
oBox.appendChild(oText2);
console.log(oBox.innerHTML);//123hello world!&lt;text&gt;
console.log(oBox.childNodes.length)//3
</script>

【normalize()】

  normalize()方法将包含两个或多个文本节点的父元素中的文本节点合并成一个。
  [注意]IE9+浏览器无法正常使用该方法,返回的结果是所有的文本节点减1

<div class="box" id="box">123</div>
<script>
var oBox = document.getElementById(‘box‘);
var oText1 = document.createTextNode(‘1‘);
oBox.appendChild(oText1);
var oText2 = document.createTextNode(‘2‘);
oBox.appendChild(oText2);
var oText3 = document.createTextNode(‘3‘);
oBox.appendChild(oText3);
console.log(oBox.childNodes.length)//4
oBox.normalize();
console.log(oBox.innerHTML);//123123
//IE9+浏览器返回3,使用该方法时只能将所有的文本节点减1;其他浏览器正常,返回1
console.log(oBox.childNodes.length)
</script>

【splitText()】

  splitText()方法将一个文本节点分成两个文本节点,即按照指定的位置分割nodeValue值。原来的文本节点将包含从开始到指定位置之前的内容,新文本节点将包含剩下的文本。这个方法会返回一个新文本节点,该节点与原节点的parentNode相同。分割文本节点是从文本节点中提取数据的常用DOM解析技术。

<div class="box" id="box">123</div>
<script>
var oBox = document.getElementById(‘box‘);
var newNode = oBox.firstChild.splitText(1);
console.log(newNode);//23
console.log(oBox.firstChild);//1
console.log(oBox.lastChild);//23
</script>

【appendData()】

  appendData(text)方法将text添加到节点的末尾

<div class="box" id="box">123</div>
<script>
var oBox = document.getElementById(‘box‘);
var oText = oBox.firstChild;
console.log(oText.appendData(‘4‘));//undefined
console.log(oText.data);//1234
console.log(oBox.childNodes.length);//1
</script>

【deleteData()】

  deleteData(offset,count)方法从offset指定的位置开始删除count个字符

<div class="box" id="box">123</div>
<script>
var oBox = document.getElementById(‘box‘);
var oText = oBox.firstChild;
console.log(oText.deleteData(0,2));//undefined
console.log(oText.data);//3
console.log(oBox.childNodes.length);//1
</script>

【insertData()】

  insertData(offset,text)方法在offset指定的位置插入text

<div class="box" id="box">123</div>
<script>
var oBox = document.getElementById(‘box‘);
var oText = oBox.firstChild;
console.log(oText.insertData(1,‘test‘));//undefined
console.log(oText.data);//1test23
console.log(oBox.childNodes.length);//1
</script>

【replaceData()】

  replaceData(offset,count,text)方法用text替换从offset指定的位置开始到offset+count处为止处的文本

<div class="box" id="box">123</div>
<script>
var oBox = document.getElementById(‘box‘);
var oText = oBox.firstChild;
console.log(oText.replaceData(1,1,"test"));//undefined
console.log(oText.data);//1test3
console.log(oBox.childNodes.length);//1
</script>

【substringData()】

  substringData(offset,count)方法提取从offset指定的位置开始到offset+count为止处的字符串

<div class="box" id="box">123</div>
<script>
var oBox = document.getElementById(‘box‘);
var oText = oBox.firstChild;
console.log(oText.substringData(1,1));//2
</script>
时间: 2024-12-28 01:07:22

DOM文本节点TEXT的相关文章

DOM之节点树操作

节点树  每个html页面载入浏览器的时候,浏览器都会生成一个树形结构,这个树形结构由节点组成,我们称之为节点树或文档树; 每个HTML标签都是元素节点 每个标签的属性都是属性节点 每个标签的文本内容都是文本节点 节点分为: 元素节点 属性节点  文本节点  注释节点 nodeType   获取节点的类型 nodeName   获取节点的名称 nodeValue  获取节点的值 节点 nodeType    nodeName    nodeValue   元素节点  标签名 1 null 属性节

DOM中文本节点索引方法

问题 对于 jquery 接口text()只能取到有标签的 dom对象中 文本内容. 如果索引对象本身就是文本节点,则不好索引到, 没有相关的索引选择器. 例如: 对于<input>aaa 形式的代码, $("input").next().text(), 则不能返回 aaa. 下面有讨论使用jquery索引的方法, 目标是在某个标签下, 找到所有 text node的 对象: http://stackoverflow.com/questions/298750/how-do-

Javascript进阶篇——(DOM—节点---插入、删除和替换元素、创建元素、创建文本节点)—笔记整理

插入节点appendChild()在指定节点的最后一个子节点列表之后添加一个新的子节点.语法: appendChild(newnode) //参数: //newnode:指定追加的节点. 为ul添加一个li,设置li内容为PHP,代码如下: 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=

DOM中元素节点、属性节点、文本节点

DOM中有12中节点,但最常用到的是元素节点,属性节点,文本节点. 元素节点的节点类型(nodeType)是1: 属性节点的节点类型(nodeType)是2: 文本节点的节点类型(nodeType)是3. 元素节点的 nodeName 是标签名称属性节点的 nodeName 是属性名称文本节点的 nodeName 永远是 #text 对于文本节点,nodeValue 属性包含文本. 对于属性节点,nodeValue 属性包含属性值. nodeValue 属性对于文档节点和元素节点是不可用的. n

DOM 控制文本节点

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>DOM控制文本节点</title> </head> <script type="text/javascript"> function processText(method){ var paraNode=document.getElementById(&qu

DOM中元素节点、属性节点、文本节点的理解

转自:http://www.cnblogs.com/dh616854836/archive/2011/08/14/2138038.html 节点信息 每个节点都拥有包含着关于节点某些信息的属性.这些属性是: nodeName(节点名称) nodeValue(节点值) nodeType(节点类型) nodeType nodeType 属性可返回节点的类型. 最重要的节点类型是: 元素类型 节点类型 元素 1 属性 2 文本 3 注释 8 文档 9 在实际应用中,经常用到的就是元素节点.属性节点和文

DOM中元素节点,属性节点,文本节点的理解

节点信息 每个节点都拥有包含着关于节点某些信息的属性.这些属性是: nodeName(节点名称) nodeValue(节点值) nodeType(节点类型) nodeType nodeType 属性可返回节点的类型. 最重要的节点类型是: 元素类型 节点类型 元素 1 属性 2 文本 3 注释 8 文档 9 在实际应用中,经常用到的就是元素节点.属性节点和文本节点了,下面我们通过小段代码进行讲解 1:元素节点 <HEAD> <TITLE>空谷悠悠</TITLE> <

DOM(Document object madle) 文档对象模型: 元素节点 文本节点 属性节点

[DOM树节点] DOM 节点分为三大类:元素节点 文本节点 属性节点 文本节点 属性节点 为元素节点的两个子节点 通过getElement系列方法,可以去到元素节点. [查看节点] 1.document.getElementById:通过ID获取唯一的节点;多个同名ID,只会取第一个: 2.document.getElementsByName:通过name取到一个数组,包含1到多个节点: 使用方式:通过循环,取到每个节点.循环次数:从0开始,<数组.length   [查看和设置属性节点] 1

DOM中元素节点、属性节点、文本节点的理解13.3

节点信息 每个节点都拥有包含着关于节点某些信息的属性.这些属性是:nodeName(节点名称) nodeValue(节点值) nodeType(节点类型) nodeType nodeType 属性可返回节点的类型. 最重要的节点类型是: 元素类型 节点类型 元素(ELEMENT_NODE) 1 属性(ATTRIBUTE_NODE) 2 文本(TEXT_NODE) 3 注释(COMMENT_NODE) 8 文档(DOCUMENT_NODE) 9 在实际应用中,经常用到的就是元素节点.属性节点和文本