鍍金池/ 問答/HTML/ 如何查看標簽元素對象中屬性的屬性描述符?

如何查看標簽元素對象中屬性的屬性描述符?

在頁面中某一標簽,例如div(id="test"),獲取它的js對象后,var obj =
document.getElementById("test"),我想查看它某個屬性的屬性描述符,但是返回是undefined,在此請教各位前輩。
Object.getOwnpropertyDescriptor(obj, "attributes"); 返回的是undefined

回答
編輯回答
愛是癌

測試了一下,發(fā)現(xiàn)確實是返回undefined,下面是我的思維過程:

  1. Object.getOwnPropertyDescriptor從方法名可以看出來,這個屬性必須是自有屬性,而不是原型鏈上的屬性,那么是不是attributes并不是dom元素的自有屬性呢?
  2. 使用Object.hasOwnProperty驗證一下,果然返回了false。既然不是自有屬性,那么Object.getOwnPropertyDescriptor也就返回undefined了。但是為什么不是自有屬性呢?
  3. 使用Object.hasOwnPropertyobj原型鏈上的對象測試了一遍,都是返回false。
  4. 結(jié)論:可能是dom對象做了特殊處理。那么我還是想看這個屬性描述符怎么辦呢?
  5. 既然attributes不是obj的自有屬性,那么我自己創(chuàng)建一個js對象,然后設(shè)置attributes屬性是obj.attributes應(yīng)該就行了吧?
  6. 果然,出來了。驗證截圖如下:

clipboard.png

2018年2月24日 14:49