在页面中某一标签,例如div(id="test"),获取它的js对象后,var obj =
document.getElementById("test"),我想查看它某个属性的属性描述符,但是返回是undefined,在此请教各位前辈。
Object.getOwnpropertyDescriptor(obj, "attributes"); 返回的是undefined
在页面中某一标签,例如div(id="test"),获取它的js对象后,var obj =
document.getElementById("test"),我想查看它某个属性的属性描述符,但是返回是undefined,在此请教各位前辈。
Object.getOwnpropertyDescriptor(obj, "attributes"); 返回的是undefined
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
测试了一下,发现确实是返回
undefined
,下面是我的思维过程:Object.getOwnPropertyDescriptor
从方法名可以看出来,这个属性必须是自有属性
,而不是原型链上的属性,那么是不是attributes
并不是dom元素
的自有属性呢?Object.hasOwnProperty
验证一下,果然返回了false
。既然不是自有属性,那么Object.getOwnPropertyDescriptor
也就返回undefined
了。但是为什么不是自有属性呢?Object.hasOwnProperty
把obj
的原型链
上的对象测试了一遍,都是返回false
。dom对象
做了特殊处理。那么我还是想看这个属性描述符怎么办呢?attributes
不是obj
的自有属性,那么我自己创建一个js对象
,然后设置attributes
属性是obj.attributes
应该就行了吧?