如何将JavaScript函数添加到没有jQuery的DOM对象?

时间:2011-03-11 17:44:54

标签: javascript function dom prototype

如何执行以下操作,但仅适用于DOM对象,而不是所有对象:

Object.prototype.hide = function() {
  this.style.display = 'none';
};

请仅使用纯JavaScript,不使用jQuery或其他第三方库。

此外,请评论您的解决方案的标准和&跨浏览器兼容性。

2 个答案:

答案 0 :(得分:5)

DOM中的元素使用HTMLElement作为原型 - 因此在理想的世界中,您只需添加此内容。

HTMLElement.prototype.hide = function() {
    this.style.display = 'none';
};

但是:这在IE中不起作用,所以不用担心。

答案 1 :(得分:1)

建议阅读prototype extends the DOM的方式。

对于代码中的想法(此处太大而无法重现),您可以找到here(搜索Element.extend)。

用两个词来说,它们不能从start开始扩展对象,因此它们使用返回DOM元素的每个函数扩展它们。