我有一个名为hello()
.
然后我检索一个DOM元素x = document.getElementById("test");
我怎样才能使这个函数表现得像x.hello();
?
我有一个名为hello()
.
然后我检索一个DOM元素x = document.getElementById("test");
我怎样才能使这个函数表现得像x.hello();
?
好吧,如果你需要给一个元素添加一个函数,你必须修改它的原型:
Element.prototype.hello = function() {
}
无论您选择它,它都适用于任何元素。
假设你想改变元素的样式,它会是这样的:
Element.prototype.hello = function() {
this.style.color = 'blue';
}
正如下面评论中所讨论的,这不一定是一个好主意。这是一篇讨论原因的博客文章:http: //perfectionkills.com/whats-wrong-with-extending-the-dom/
因此,您可以做的是创建一个在 Elements 上运行的实用程序类。
它是什么样子的?
var DOM = {};
DOM.hello = function (element, worldParam) {
element.style.color = worldParam;
}
等等等等。
所以,为了使用它,你会这样做:
DOM.hello(document.getElementById('#test'));
如果你想为页面上的每个 DOM 元素添加一个hello()
,你应该修改它的原型:
Element.prototype.hello = hello;
但我不会建议你这样做,因为你的更改会影响页面上几乎所有的 js 代码。
如果您想将 a 添加hello()
到此特定元素,只需分配它:
x.hello = hello;
this
现在hello()
将指x
x = document.getElementById("test");
x.prototype.hello = function() { // your function }
现在你可以使用 x.hello()。
看看这个。
该链接为您提供了 jsfiddle 上的示例脚本。