特性:有length屬性,其它屬性(索引)為非負整數,不具有陣列所具有的方法
==在JS的DOM中,有三個常用到的類陣列物件:NodeList NamedNodeMap 和 HTMLCollection==
==HTMLCollection NodeList以及NamedNodeMap都是“動態的”,每當文件結構發生變化時,他們都會得到更新,始終會儲存著最新,最準確的資訊==
與陣列的區別
類陣列是物件,不是陣列,不能去使用陣列中的方法新增成員時,類陣列的length屬性值不會變化設定length屬性值時,陣列的成員會發生變化,而類陣列只是僅僅改變了length的屬性值類陣列判斷function isArrayLike(o) { if (o && // o is not null, undefined, etc. typeof o === 'object' && // o is an object isFinite(o.length) && // o.length is a finite number o.length >= 0 && // o.length is non-negative o.length===Math.floor(o.length) && // o.length is an integer o.length < 4294967296) // o.length < 2^32 return true; // Then o is array-like else return false; // Otherwise it is not}
類陣列轉換Array.prototype.slice.call(listArray)
常見類陣列物件arguments屬性lengthcalleeNodeList屬性length方法item(idx):透過索引訪問節點
以下返回型別為nodeList
childNodes getElementsByClassName(className) getElementsByTagName(tagName)
NameNodeMap屬性length方法item(idx) 透過索引訪問節點getNamedItem(NS) 透過名稱(和名稱空間)訪問節點 setNamedItem(NS) 透過名稱(和名稱空間)設定節點 removeNamedItem(NS) 根據名稱(和名稱空間)刪除節點
以下程式碼形式返回型別為NamedNodeMap:
element.attributes
HTMLCollection屬性length方法item(idx) 透過索引訪問節點namedItem(name) //透過name 屬性或 id 屬性訪問節點
以下程式碼形式返回型別為HTMLCollection:
document.images //所有img元素 document.links //所有帶href屬性的a元素和area元素 document.anchors //所有帶name屬性的a元素 document.forms //所有form元素 document.scripts //所有script元素 tBodies(table元素)rows(table、tbody、thead、tfoot元素)cells(tr元素)
最新評論