javascript - 列出 DOM 对象上的变量和方法

标签 javascript html dom web-component

如何找出 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));

这适用于各种现代浏览器,但请注意,浏览器并不要求允许您以这种方式内省(introspection) 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/

相关文章:

javascript - 使用 jQuery 在 Rails 中可点击 Div?

javascript - 使用 JavaScript/JQuery 将 html 表格数据导出到 Excel 在 chrome 浏览器中无法正常工作

html - 跟随其主容器的重叠 div

javascript - 如何使用 jQuery 和 Bootstrap 正确表示对象

javascript - 显示文本区域中重复的单词数

javascript 空白包装函数

javascript - 如何使用链式变量构建类似 namespace 的字符串

javascript - 使用 POLY LINE 时如何在 Google Map Javascript API 中显示旅行方向箭头?

javascript - Firefox 扩展的 'load event' 之前的事件?

Javascript DOM - 将文本元素对齐到中心?