首页 > 解决方案 > 库方法如何在 javascript 中工作?

问题描述

我对 javascript 有点陌生,并且一直在使用库/css 框架来构建一些我只是为了好玩而构建的网站。要使用框架创建者提供的某些功能,文档说要调用 jQuery 对象上的方法,例如$('.my-class').someMethod(). 例如,以下是如何在您想要的任何输入字段上初始化 Materialize 的自动完成功能:

$(document).ready(function(){
    $('input.autocomplete').autocomplete({
      data: {
        "Apple": null,
        "Microsoft": null,
        "Google": 'https://placehold.it/250x250'
      },
    });
  });

现在,我的理解是,当您运行:时$('input.autocomplete'),jQuery 将返回一个“jQuery 对象”,如此所述。

所以我在浏览器中用一个虚拟页面运行了一个测试,并将这个对象记录到控制台,它返回了一个包含一个元素的数组——我搜索的 div 元素:

在此处输入图像描述

我猜上图中的所有紫色文本都是 jQuery 对象的属性。

现在我的问题是:我怎么可能调用.autocomplete()这个对象?jQuery 对象中不存在 .autocomplete() 方法,那么为什么这不会引发错误呢?

我很难理解如何.autocomplete()在几乎任何 jQuery 对象上运行......它怎么知道在哪里可以找到这个方法?我想使用点表示法,它需要是您将其链接到的类中的一个方法。

标签: javascriptjquery

解决方案


我怎么可能在这个对象上调用 .autocomplete() ?jQuery 对象中不存在 .autocomplete() 方法,那么为什么这不会引发错误呢?

jQuery 插件可以将自己的函数添加到 jQuery 对象中,请参阅jQuery.fn.extend了解更多信息。

此方法来自您可能尚未安装的 jQuery 插件。如果没有更多信息,就不可能分辨出哪一个,但有很多选择

请注意,控制台内的这个视图也不会显示所有 jQuery 方法。这是查找可以在任何对象上调用的可用方法和属性的更好方法:

在控制台中显示方法和属性


推荐阅读