【问题标题】:Cannot call method 'select2' of null无法调用 null 的方法“select2”
【发布时间】:2013-10-02 00:24:40
【问题描述】:

我正在尝试使用 Select2 库来显示类别列表。我现在有一个经常工作的<select>

我在我的 html 中添加了 jquery、样式表、.js 文件和函数。

<link href="/select2/select2.css" rel="stylesheet"/>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script>
<script src="/select2/select2.js"></script>
<script>
    $(document).ready(function() { $("#listCategorie").select2(); });
</script>

但是,选择仍然正常显示,我在控制台中收到以下错误:

未捕获的类型错误:无法调用 null 的方法“select2”

这是我的选择:

<select id="listCategorie">
    <option value="0"></option>
    ....
</select>

【问题讨论】:

  • $("#listCategorie") 不正确并返回 null。
  • 选择 ID 设置为 listCategorie,它存在于我的 HTML 中。它应该能够找到它,因为该函数是在加载 DOM 时调用的。
  • 对不起,这就是错误的意思。您是偶然在本地运行它,还是在网络服务器上运行它。如果在本地,它是在本地主机上还是作为文件运行 (file://)?
  • @oliboon 试试jQuery(document).ready(function() { jQuery("#listCategorie").select2(); });
  • 是的,看起来是这样。做得很好:)

标签: javascript jquery jquery-select2


【解决方案1】:

您似乎与$ 有一些冲突,在您的情况下$ 并不意味着jQuery。因为即使选择器不匹配任何元素,jQuery 也不会返回 null。试试这个:

jQuery(document).ready(function() {
   jQuery("#listCategorie").select2(); 
});

【讨论】:

    【解决方案2】:
    1. 检查你正在初始化select2()的元素的ID是否正确。
    2. 通过打开 chrome 开发者控制台 (F12) 检查 jquery 和 select2 库是否正确加载并转到源/资源选项卡。看看你的图书馆是否在那里。
    3. 请发布更多代码。这将有助于找出问题。

    【讨论】:

    • 我已经用相应的 ID 添加了我的选择。资源加载正确。
    • @oliboon 我刚刚复制粘贴了您的代码here 并添加了您的库。事情似乎工作得很好。可能错误在其他地方...
    【解决方案3】:

    也许你需要 jQuery Migrate ,因为这个插件可能有一些方法被弃用,然后这将不适用于 jQuery 1.9 + 版本

    【讨论】:

    • 我已经尝试了 jQuery Migrate,但它仍然给我同样的错误信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    相关资源
    最近更新 更多