我如何找出DOM对象上的变量和方法?在下面的示例中,如何确定div#main
具有变量greeting
和方法greet
?
(最好不使用外部库。)
var main = document.querySelector('#main');
main.greeting = 'Hello Meep!';
main.greet = function() {
alert(this.greeting);
}
main.greet();
<div id="main">
...
</div>
最佳答案
在允许带有DOM元素的浏览器上,可以使用Object.keys
或for-in
来获取可枚举属性的数组:
console.log(Object.keys(main));
这适用于各种现代浏览器,但是请注意,不需要浏览器即可以这种方式自省DOM元素,因此,如果您依赖它,请确保在目标浏览器中进行测试。
如果既要使用不可枚举的属性,也可以尝试使用
Object.getOwnPropertyNames(main)
而不是Object.keys(main)
。例:
var main = document.querySelector('#main');
main.greeting = 'Hello Meep!';
main.greet = function() {
alert(this.greeting);
}
main.greet();
var p = document.createElement('p');
p.appendChild(document.createTextNode(
Object.keys(main).join(", ")
));
document.body.appendChild(p);
<div id="main">
...
</div>
关于javascript - 列出DOM对象上的变量和方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36998984/