JavaScript类数组对象参考

时间:2021-11-10 16:44:27

JavaScript和DOM中有很多类数组对象,它们有以下特点

1、有length属性

2、可以使用[]通过下标访问

3、部分类数组对象使用[]访问成员时不只可以使用下标,还可以使用id或name

4、既然满足了1、2条件,当然也可以通过for循环来遍历

但正如其名字,它们只是类似数组,而不是数组,并不能使用数组的特有方法,如slice、push、pop等。不过如果确实需要它们像数组一样工作,可以使用Array.prototype.slice(类数组对象, 0)来产生一个数组。产生的数组也就失去了原有类数组对象所特有的方法和[]使用name来访问的特性

下面是一些类数组对象的介绍

一、Arguments

arguments是最常见的类数组对象,在函数内部使用,arguments[0]或functionName.arguments[0]

成员介绍

属性
length //长度
callee //正在执行的函数

二、NodeList

以下代码形式返回类型为NodeList

childNodes
getElementsByName(name)  
getElementsByClassName(className)  
getElementsByTagName(tagName)  
getElementsByTagNameNS(namespaceURI, tagName)  
querySelectorAll(selectors)document.all.tags(tagName)

成员介绍

属性
length //长度
方法
item(idx) //访问成员,支持下标、元素id

三、StyleSheetList

以下代码形式返回类型为NodeList

document.styleSheets

成员介绍

属性
length //长度
方法
item(idx) //访问成员,支持下标、元素id、元素name

四、HTMLCollection

以下代码形式返回类型为HTMLCollection

children
document.images //所有img元素  
document.links //所有带href属性的a元素和area元素  
document.anchors //所有带name属性的a元素  
document.forms //所有form元素  
document.scripts //所有script元素  
document.applets //所有applet元素  
document.embeds //所有embed元素  
document.plugins //document.与embeds相同  
tBodies(table元素)
rows(table、tbody、thead、tfoot元素)
cells(tr元素)
areas(map元素)

成员介绍

属性
length //长度
方法
item(idx) //访问成员,支持下标、元素id、元素name
namedItem(name) //访问成员,支持元素id、元素name

五、HTMLFormControlsCollection (继承HTMLCollection)

以下代码形式返回类型为HTMLFormControlsCollection

elements(form元素)

成员介绍

属性
length //长度
方法
item(idx) //访问成员,支持下标、元素id、元素name
namedItem(name) //访问成员,支持元素id、元素name

六、HTMLOptionsCollection(继承HTMLCollection)

以下代码形式返回类型为HTMLFormControlsCollection

options(select元素)

成员介绍

属性
length //长度
selectedIndex //当前选中option的下标
方法
item(idx) //访问成员,支持下标、元素id、元素name
namedItem(name) //访问成员,支持元素id、元素name
add(option, beforeIndex) //添加option
remove(index) //删除option

七、HTMLAllCollection

以下代码形式返回类型为HTMLFormControlsCollection

document.all

成员介绍

属性
length //长度
方法
item(idx) //访问成员,支持下标、元素id、元素name
namedItem(name) //访问成员,支持元素id、元素name
tags(tagName) //返回特定标签名称的NodeLi