iT邦幫忙

0

無法取得 HTMLCollection & Nodelist 的 length 屬性名

  • 分享至 

  • xImage

大家好!

這個問題困擾我很久了,需要麻煩各位專家解惑。


使用 Object.getOwnPropertyNames 取得 Array 的屬性名時,可以取得 length 屬性名:

Object.getOwnPropertyNames([]); // ['length']

然而,使用同方法取得 HTMLCollectionNodelist 的屬性名時,就無法取得 length 屬性名了:

const list = document.querySelectorAll('body');
const coll = document.getElementTagNames('body');

Object.getOwnPropertyNames(list); // ['0']
Object.getOwnPropertyNames(coll); // ['0']

可是,關於 Object.getOwnPropertyNames 的使用,應該會回傳除了 Symbol 的所有屬性名(含不能枚舉)


我也明白 HTMLCollectionNodelist 不能和 Array 相提並論,但是這樣也太奇怪了,如果不能取得 length 屬性名,那麼 length 作為 HTMLCollectionNodelist 的屬性,又是什麼樣的存在呢?

Felix iT邦研究生 2 級 ‧ 2022-05-02 22:42:33 檢舉
找出原因了!
因為 HTMLCollection 和 Nodelist 的 length 是 getter 而非屬性。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答