【发布时间】:2017-07-28 19:41:32
【问题描述】:
是否有可能通过 JavaScript 通过其构造函数(最好是HTMLElement)通过自定义属性或直接访问 DOM 元素?
类似于下面的代码:
/* Some Attribute
document.body.someAttribute == document.body
(this should be true)
*/
HTMLElement.prototype.someAttribute = (function() {
/* Return the element. */
})();
编辑
显然这就是我要问的:
Object.defineProperty(HTMLElement.prototype, "someAttribute", {
get: function someAttribute() { return this }
});
document.body.someAttribute === document.body // -> true
【问题讨论】:
-
不确定用例,但这里是选择 DOM 元素的方法。 developer.mozilla.org/en-US/docs/Web/API/Document/querySelector
-
“通过其构造函数访问 DOM 元素”你想用这个做什么?从我的看法来看,如果没有 DOM 元素,您将无法访问此方法,因此提供一种从自身获取自身的方法似乎是多余的,除非您尝试访问元素的属性,在这种情况下 @ 987654322@存在
-
可能和How to add my own methods to HTMLElement object?一样,不过很难说……
-
我不知道为什么它被关闭了。目前尚不清楚他们在问什么。很明显,他们很困惑。很明显,标题可以更改为 I 类似“如何将方法/属性添加到 DOM 元素的构造函数,以便该方法可以访问 DOM 元素”。 ...这就是为什么初学者不能在这里提问的原因。如果这个人有足够的信息来正确地提出问题,那么他们一开始就不会提出问题。
-
这是答案,因为问题已经结束:HTMLElement.prototype.myMethod = function(){ console.log("this element", this)} 然后:let element = document.getElementById('我的元素')。然后: element.myMethod() .... 控制台会记录你的元素,或者在方法中做任何你想做的事情。
标签: javascript