使用其它方法来存取元素计划
到目前为止你所看到的范例script 程序中,都是借着浏览节点的阶层结构,利用childNodes 与firstChild 两个节点属性来从某节点往相邻节点移动。记住,你可以用类似的方法来使用lastChild、previousSibling、nextSibling 和parentNode 等节点属性。表格 详细描述了这些节点属性。
注意
childNodes、firstChild 与lastChild 属性只准许你存取非属性的子节点,而previousSibling 与nextSibling 属性则让你可以存取任何形态的兄弟节点。
另一种存取XML 元素的方法,是使用getElementsByTagName 方法来撷取拥有特殊形态名称的所有元素(像TITLE)。这个方法在Document 节点(于表格 中介绍)以及Element 节点(于表格 中介绍)都可以使用。如果你为Document 节点呼叫这个方法,它会传回文件中所有拥有特定型态名称元素的Element 节点集合。例如,下面的程序代码会取得文件中所有为BOOK 形态元素的Element 节点集合:
NodeList =tElementsByTagName(\"BOOK \");
如果呼叫Element 节点的getElementsByTagName 方法,如下面例子所示,则方法将传回所有符合条件的子Element 节点集合:
NodeList =tElementsByTagName(\"AUTHOR \");
提示
如果你传入「*」值给getElementsByTagName 方法,其将传回所有元素的节点集合。(如果你呼叫的是Document 对象的方法,则其会传回文件中所有元素的集合;如果呼叫的是Element对象的方法,则其会传回所有后继元素的集合。)
Element 节点方法节点方法 描述 范例 getAttribute(attr-name) 传回拥有特定名称的Element 属性的属性值 AttValue =tAttribute(\"InStock\"); GetAttributeNode(attr-name) 传回代表拥有特定名称的Element 属性的Attribute 节点 Attribute=tAttributeNode(\"InStock\"); getElementsByTagName(type-name) 传回该元素中拥有特定型态的所有后继元素的Element节点的NodeList对象。.如果你传入参数值「*」时,方法将传回所有代表后继元素的节点 AuthorElementCollection=tElementsByTagName(\"AUTHOR\"); 表格 Element 节点所提供有用的方法。在Element 节点中你也可以使用表格 中所列的共同节点属性。
getElementsByTagName 方法以NodeList 集合对象的形态,传回给Element 节点。因此你可以使用本章先前在<使用NodeList 对象>中讨论过的任何技术,来存取个别的节点。例如,下面的script 程序,将显示(藉由「alert」的讯息显示框)由getElementsByTagName 方法所传回的NodeList 对象中所有Element 节点的文字内容:
for (i=0;i ngth;++i)
alert (NodeList(i).text);
列表 的HTML 页显示了在Document 节点中使用getElements-ByTagName 方法的用法。(你可以在随书光盘中的m 档案中找到列表。)该页显示一个文字(TEXT)形态的输入(INPUT)控件,让你可以输入元素名称。当你按下 Show Elements 按钮时,script中的ShowElements 函式将在文件节点中使用getElementsByTagName 方法来搜寻,并显示文件中符合输入元素名称的所有元素XML 卷标的内容。注意,script 中使用每个Element 节点的xml 属性来显示元素的XML 卷标内容。页一开始就被连结至文件l 中,虽然你可以文件中的data island来显示其它XML文件中的元素。下图是在你输入AUTHOR到INPUT
控件并按下按钮时,Internet Explorer 5 显示该页的情况。
m
!--File Name:m --
HTML
HEAD
TITLEElement Finder/TITLE
SCRIPT LANGUAGE=\"javascript\"
function ShowElements()
{
/*make sure user has entered text into the
\'\'Element name\'\' box::*/
if (lue ==\"\")
{
nerText =\"You must enter an
element\"
+\"name into \'\'Element name\'\' box..\";
return;
}
/*get a NodeList collection of all matching Element
nodes in the document:*/
Document =LDocument;
而克鲁格曼干脆就被贴上了“萧条经济学家”的标签 NodeList =
tElementsByTagName
(lue);
/*store the XML markup for each Element node
in ResultHTML:*/
ResultHTML =\"\";
for (i=0;i ngth;++i)
ResultHTML +=NodeList(i).xml +\"\\n \\n\";
/*assign the stored results to the innerText property
of the DIV:*/
if (ResultHTML ==\"\")
nerText =\"no matching elements
found\";
else
nerText =ResultHTML;
}
/SCRIPT
/HEAD
BODY
XML ID=\"dsoXML\" src=\"l\"/XML
H2Find Elements by Element Name/H2
Element name:INPUT TYPE=\"TEXT\" ID=\"ElementName\"
BUTTON onCLICK=\"ShowElements()\"Show Elements/BUTTON
HR
DIV ID=ResultDiv/DIV
/BODY
/HTML
头晕南宁卵巢炎治疗多少钱
佳木斯白癜风专业医院
-
HKC高端MiniLED新品将要上市,4K+144HZ还有90W一线通
HKC显示器隶属于惠科显示终端乒乓,惠科在屏显新科技及趋势新产品研制出上...
2023-11-02
-
国家统计局发布2021年平均工资数据:IT业最高者
5月20日,核算公开发表2021年人均数据,2021年省内小镇非私营基本单位就业医...
2023-10-24
-
月内已交付7艘船!新大洋造船交付嘉航海运第2艘75000吨内贸散货船
5年底16日,最初深海技工为泰州嘉航海运香港)有限公司兴建的第二艘75000乘...
2023-10-22
-
拍好人像设备很重要,看看这三款手机展示出如何?
拍人像三要素,都进来学习一下! 1、人好看 2、人好看 3、还是人好看 大家...
2023-10-20
-
混动界“新卷王”来了,广汽传祺裨益浪混动GMC2.0正式量产下线!
7月6日,广汽传祺甚多潮复合动GMC2.0正式量产大批量。作为广汽传祺双复合动...
2023-10-19
-
汪汪狗狗去郊游,会发生什么事情呢玩沙子 小孩子的快乐总是那么简单 陪伴孩子的美好时光 ;还有 工程车
汪汪狗狗去郊游,会起因什么事情呢玩到泥土 大人的快乐也许那么简单 陪伴孩...
2023-10-12