扩展 HTMLElement

发布于 2024-12-09 03:23:17 字数 247 浏览 3 评论 0原文

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

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

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

谢谢!

using jQuery it is possible to do something like this: $("div")[5].animate()

This seems to me like the developers in a way extended the HTMLElement using prototype.

My question is now: How did they do this? Since HTMLElement.prototype is not working in IE for example I wonder if there is a cross browser method to prototype HTML elements.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

泼猴你往哪里跑 2024-12-16 03:23:17

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

You can't extend those things in IE; IE just does not implement the DOM interface that way. That's why Prototype forces you to "wrap" elements that you want to manipulate with those additional methods.

羁拥 2024-12-16 03:23:17

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

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

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

我强烈建议您通读 带注释的 jQuery 源代码,以便您可以准确地了解后面发生的情况-场景。

the jQuery factory function (jQuery() or $()) does not return a DOM node.

The jQuery factory function returns a new jQuery.init instance which acts very similar to an array. Instead of extending any DOM node's prototype, more functions are simply added to jQuery.fn

If a function is chained on a jQuery selector, it typically applies to all the elements contained within the jQuery.init instance.

I highly recommend reading through the commented jQuery source so that you can see exactly what's going on behind-the-scenes.

夢归不見 2024-12-16 03:23:17

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

Note that $('#book') !== document.getElementById('book').
The first one is a jQuery object which refers to a dom element and can be extended, while the second one is actually a dom element.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文