为什么这在 jQuery 中有效?

发布于 2024-12-16 14:40:08 字数 270 浏览 0 评论 0原文

我试图理解为什么某些东西会以 jQuery 的方式工作。 当我想应用 jQuery 扩展时,例如 datatables,我运行命令:

$("#some_id").datatables(.. parameters ..);

我不知道为什么会这样,显然 DOM 元素事先没有方法 datatables()

谢谢!

I'm trying to understand why something works the way it does in jQuery.
When I want to apply a jQuery extension, for example datatables, I run the command:

$("#some_id").datatables(.. parameters ..);

I don't know why this works, obviously the DOM element didn't have a method datatables() beforehand.

Thanks!

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

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

发布评论

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

评论(4

猫九 2024-12-23 14:40:08

$("#some_id") 不返回 HTML DOM 元素,而是返回包装它的 JQuery 对象。

这个 JQuery 对象确实有 datatables 方法。

$("#some_id") does not return a HTML DOM element, it returns a JQuery object wrapping it.

This JQuery object does have the datatables method.

好菇凉咱不稀罕他 2024-12-23 14:40:08

原因是您没有对 DOM 元素进行此调用 - 您是在 jQuery 对象 上进行此调用,该对象存储它应影响的 DOM 对象的信息。

.datatables() 可用的原因是某些插件(可能是 DataTables)它可以通过与此类似的方式访问:

jQuery.fn.my_foo_func = function(){
    console.log(jQuery(this));
};

如果应用上面的内容,您将能够执行类似的操作:

$("#some_id").my_foo_func();

这会将您调用它的 jQuery 对象传递到控制台。

够清楚了吗?

The reason for that is because you are not making this call on DOM element - you are making it on jQuery object that stores the information on the DOM objects it should influence.

And the reason .datatables() is available is that some plugin (probably DataTables) made it accessible in the way similar to this:

jQuery.fn.my_foo_func = function(){
    console.log(jQuery(this));
};

If you apply the above, you will be able to do something like that:

$("#some_id").my_foo_func();

which will pass to the console the jQuery object(s) on which you invoked it.

Is it clear enough?

终遇你 2024-12-23 14:40:08

一旦你调用 $("#some_id") 你就不再拥有 DOM 对象而是 jQuery 对象。
DOM 对象可通过 $("#some_id")[0] 访问。

Once you call $("#some_id") you no longer have a DOM object but a jQuery object.
The DOM object is reachable with $("#some_id")[0].

终陌 2024-12-23 14:40:08

您安装了一个插件,该插件通常将方法 .datatables() 添加到 jQuery() 对象缩写为$()。如果您有兴趣创建自己的 jQuery() 对象方法,这里有一个 Google 搜索可以帮助您入门

You installed a plugin which added a method, .datatables(), to the jQuery() object, often abbreviated as $(). If you're interested in creating your own jQuery() object methods, here's a Google search to get you started.

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