getElementsByTagName返回的是一个数组吗?

getElementsByTagName返回的是一个数组吗?用起来像是一个数组,用length属性表示元素个数,用数字下表访问集合内的元素,但请看看下面的这个例子

页面元素如下:

<div>1</div>
<div>2</div>
<div>3</div>

执行js脚本:

var divs = document.getElementsByTagName(‘DIV’);
alert(divs.length);
var div4 = document.createElement(‘DIV’);
div4.innerHTML = ’4′;
document.body.appendChild(div4);
alert(divs.length);

第一个alert输出结果是3,如果getElementsByTagName返回的是一个数组,第二次alert输出也应该是3,但实际输出是4,说明getElementsByTagName返回的是一个活动的列表,会实时反映出DOM对象的更新情况。

Comments are closed.