发布于2026-07-22 阅读(0)
扫一扫,手机访问
列表9-3中的script程序使用每个子元素(TITLE、AUTHOR、BINDING、PAGES与PRICE)的text属性,作为获取元素字符数据的快捷方法。比如,下面这段代码用来提取TITLE元素中的字符数据:
title.innerText = Document.documentElement.childNodes(0).text;
text属性不仅返回当前节点对应元素的文字内容,还会顺带返回所有后续元素的文字内容。当元素没有子元素时,这个属性确实能正确提取文字(比如TITLE元素)。不过,一旦元素包含多个子元素和字符数据,text属性就会一股脑儿地返回所有文字。就像下面这个例子,它会返回「Moby-Dick Or,the Whale」:
Moby-Dick Or, the Whale
那么,如何只获取TITLE元素的字符数据呢?你必须访问TITLE元素的子文字节点。
表格9-1中提到,Element节点的nodeValue属性值是null。如果元素包含字符数据,这些文字会被存储在子Text节点中,然后你可以通过这个Text节点的nodeValue属性来读取。例如,如果TITLE的Element节点包含文字「Moby-Dick」,下面这段代码就能返回TITLE的字符数据「Moby-Dick」,而不会带上SUBTITLE的内容:
Element.firstChild.nodeValue
(因为TITLE元素的字符数据位于子元素之前,所以第一个子节点就代表了字符数据,你可以直接用firstChild属性来获取。)如果元素的字符数据与子元素、注释或处理指令混杂在一起,每个独立的字符数据区块都会成为一个子Text节点。比如下面这个例子,ITEM元素有三个子节点:第一个Text节点对应第一个字符数据区块,Element节点对应子元素SUB-ITEM,另一个Text节点对应第二个字符数据区块:
- character data block 1
sub-item text character data block 2
表格9-5列出了Text节点提供的有用属性和方法:
| Text节点的属性 | 描述 | 范例 |
| Length | 该节点文字包含的字符数 | CharacterCount = Text.length; |
| Text节点的方法 | 描述 | 范例 |
| SubstringData(char-offset, num-chars) | 返回一个字符串,从节点文字中截取指定数量的字符。char-offset是起始位置,num-chars是长度。 | SubString = Text.substringData(2, 3);(从Text元素内容中返回第2、3、4这三个字符) |
这些属性也包括了表格9-2中列出的公共节点属性,实际使用时可以一并参考。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8