文档库 最新最全的文档下载
当前位置:文档库 › 获取节点的方法

获取节点的方法


1. 通过顶层document节点的方法获取:
(1)document.getElementById(elementId):该方法通过节点的ID,可以准确获得需要的元素,是比较简单快捷的方法。如果页面上含有多个相同id的节点,那么只返回第一个节点。

(2)document.getElementsByName(elementName):该方法是通过节点的name获取节点,从名字可以看出,这个方法返回的不是一个节点元素,而是具有同样名称的节点数组。然后,我们可以通过要获取节点的某个属性来循环判断是否为需要的节点。这个返回的是数组
例如:在HTML中checkbox和radio都是通过相同的name属性值,来标识一个组内的元素。如果我们现在要获取被选中的元素,首先获取改组元素,然后循环判断是节点的checked属性值是否为true即可。
(3)document.getElementsByTagName(tagName):该方法是通过节点的Tag获取节点,同样该方法也是返回一个数组,例如:document.getElementsByTagName('A')将会返回页面上所有超链接节点。把特殊字符串 "*" 传递给 getElementsByTagName() 方法,它将返回文档中所有元素的列表,元素排列的顺序就是它们在文档中的顺序。

2.利用document的属性获取

(1).document.all[] 包含的元素保持了最初的顺序,如果你知道它们在数组中的确切数字化位置,可以直接从数组中提取它们。
然而,更为常见的是使用 all[] 数组,根据它们的 HTML 属性 name 或 id 来访问元素。如果多个元素拥有指定的 name,将得到共享同一名称的元素的一个数组。

document.all["sss"].href="127.0.0.1";
document.all["ccc"].innerHTML="我靠,看看能不能用;";
document.all.tags("a")["0"].innerHTML="我靠,看ddsf sdf看能不能用;";

(2)anchors[] 返回对文档中所有 Anchor 对象的引用。
document.anchors[0].innerHTML:返回文档中第一个锚的 innerHTML

(3)forms[] 返回对文档中所有 Form 对象引用。

(4)images[] 返回对文档中所有 Image 对象引用。
document.form[0] :文档中的第一个表单

(5)links[] 返回对文档中所有 Area 和 Link 对象引用。

(6)在表单中,elements[] 包含表单中所有元素的数组。
document.forms[0].elements[0].value:获取第一个表单第一个节点的值

如果 elements[] 数组具有名称(input 标签的 id 或 name 属性),那么该元素的名称就是 formObject 的一个属性,因此可以使用名称而不是数字来引用 input 对象。
举例,假设 x 是一个 form 对象,其中的一个 input 对象的名称是 fname,则可以使用 x.fname 来引用该对象。详见(7)

(7)在表单中,可以直接用name,ID标签选取。未在表单中非表单元素的name的标签不可以
已经测试IE.Firefox.opera可以。例:


="text" value='测试下子哈' />


获取name=“test”的值。可以直接写成document.form.test.value(用name获取);或者document.form.text.value(用ID获取)

3、通过DOM父节点获取:
(1)parentObj.firstChild:如果节点为已知节点(parentObj)的第一个子节点就可以使用这个方法。这个属性是可以递归使用的,也就是支持parentObj.firstChild.firstChild.firstChild...的形式,如此就可以获得更深层次的节点。
(2)https://www.wendangku.net/doc/a519139328.html,stChild:很显然,这个属性是获取已知节点(parentObj)的最后一个子节点。与firstChild一样,它也可以递归使 在使用中,如果我们把二者结合起来,那么将会达到更加令人兴奋的效果,即:https://www.wendangku.net/doc/a519139328.html,stChild...

(3)parentObj.childNodes:获取已知节点的子节点数组,然后可以通过循环或者索引找到需要的节点。
注意:经测试发现,在IE7上获取的是直接子节点的数组,而在Firefox2.0.0.11上获取的是所有子节点即包括子节点的子节点。

(4)parentObj.children:获取已知节点的直接子节点数组。
注意:经测试,在IE7上,和childNodes效果一样,而Firefox2.0.0.11不支持。这也是为什么我要使用和其他方法不同样式的原因。因此不建议使用。
(5)parentObj.getElementsByTagName(tagName):使用方法不再赘述,它返回已知节点的所有子节点中类型为指定值的子节点数组。例如:parentObj.getElementsByTagName('A')返回已知的子节点中的所有超链接。

4、通过临近节点获取:
(1)neighbourNode.previousSibling:获取已知节点(neighbourNode)的前一个节点,这个属性和前面的firstChild、lastChild一样都似乎可以递归使用的。

(2)neighbourNode.nextSibling:获取已知节点(neighbourNode)的下一个节点,同样支持递归。

5、通过子节点获取:

(1)childNode.parentNode:获取已知节点的父节点。





相关文档
相关文档 最新文档