我如何找出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.keysfor-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/

10-09 15:28
查看更多