扩展HTMLElement

时间:2011-10-11 13:15:04

标签: javascript jquery html prototyping

使用jQuery可以执行以下操作:$("div")[5].animate()

在我看来,开发人员在某种程度上使用HTMLElement扩展了prototype

我现在的问题是:他们是怎么做到的?由于HTMLElement.prototype在IE中不起作用,我想知道是否有一种跨浏览器方法来构建HTML元素的原型。

谢谢!

3 个答案:

答案 0 :(得分:2)

你不能在IE中扩展这些东西; IE只是没有以这种方式实现DOM接口。这就是为什么Prototype强制你用这些附加方法“包装”你想要操纵的元素。

答案 1 :(得分:2)

jQuery工厂函数(jQuery()$() 不会返回DOM节点

jQuery工厂函数返回一个新的jQuery.init实例,其行为与数组非常相似。而不是扩展任何DOM节点的原型,只需将更多功能添加到jQuery.fn

如果函数链接在jQuery选择器上,它通常适用于 all jQuery.init实例中包含的元素。

我强烈建议您阅读commented jQuery source,以便能够准确了解幕后发生的事情。

答案 2 :(得分:1)

请注意$('#book') !== document.getElementById('book')
第一个是jQuery对象,它引用一个dom元素并且可以扩展,而第二个实际上是一个dom元素。