$ 不是函数 - jQuery 错误

IT技术 javascript jquery
2021-02-02 16:36:39

我的 jQuery 加载得很好,我已经进行了四重检查,但我在 FireBug 中收到此错误“$ 不是函数”并且我的代码不起作用。

这是我的代码:

<script type="text/javascript">
    $("ol li:nth-child(1)").addClass('olli1');
    $("ol li:nth-child(2)").addClass("olli2");
    $("ol li:nth-child(3)").addClass("olli3");
    $("ol li:nth-child(4)").addClass("olli4");
    $("ol li:nth-child(5)").addClass("olli5");
    $("ol li:nth-child(6)").addClass("olli6");
    $("ol li:nth-child(7)").addClass("olli7");
    $("ol li:nth-child(8)").addClass("olli8");
    $("ol li:nth-child(9)").addClass("olli9");
    $("ol li:nth-child(10)").addClass("olli10");
    $("ol li:nth-child(11)").addClass("olli11");
    $("ol li:nth-child(12)").addClass("olli12");
    $("ol li:nth-child(13)").addClass("olli13");
    $("ol li:nth-child(14)").addClass("olli14");
    $("ol li:nth-child(15)").addClass("olli15");
    $("ol li:nth-child(16)").addClass("olli16");
    $("ol li:nth-child(17)").addClass("olli17");
    $("ol li:nth-child(18)").addClass("olli18");
    $("ol li:nth-child(19)").addClass("olli19");
    $("ol li:nth-child(20)").addClass("olli20"); 
</script>
6个回答

在 WordpressjQuery.noConflict()中,它包含的 jQuery 文件被调用(滚动到它包含的文件底部,让 jQuery 看到这一点),这意味着$不起作用,但jQuery确实如此,因此您的代码应如下所示:

<script type="text/javascript">
  jQuery(function($) {
    for(var i=0; i <= 20; i++) 
      $("ol li:nth-child(" + i + ")").addClass('olli' + i);
  });
</script>
哇,我从来没有想过。
2021-03-23 16:36:39
通过使 $ 成为一个函数,我能够修复我的代码 var $ = jQuery;
2021-03-24 16:36:39
@Alex - 看一看, noConflict 绝对是你的问题$......在最后的 jQuery 包含中看到它:softsailor.com/wp-includes/js/jquery/jquery.js?ver=1.4.2,看看是什么否则现在是错误的。
2021-03-25 16:36:39
我已经用这个替换了我的代码,但它仍然不起作用。这是页面softsailor.com/how-to/...
2021-04-10 16:36:39
@Alex - 你的答案中没有代码,你的代码var i=i出于某种原因,应该是var i=0,替换它,它会起作用。
2021-04-12 16:36:39

这真的很难说,但页面上的 9001 条广告之一可能正在破坏该$对象。

jQuery提供全局jQuery对象(这目前在页面上)。您可以执行以下操作以“取回” $

jQuery(document).ready(function ($) {
    // Your code here
});

如果您认为自己遇到了 jQuery 问题,请使用该库的调试(非生产)版本。

此外,像这样编辑实时站点可能不是最好的......

伟大的!非常感谢你!:)
2021-03-31 16:36:39
<script type="text/javascript">
    $("ol li:nth-child(1)").addClass('olli1');
    $("ol li:nth-child(2)").addClass("olli2");
    $("ol li:nth-child(3)").addClass("olli3");
    $("ol li:nth-child(4)").addClass("olli4");
    $("ol li:nth-child(5)").addClass("olli5");
    $("ol li:nth-child(6)").addClass("olli6");
    $("ol li:nth-child(7)").addClass("olli7");
    $("ol li:nth-child(8)").addClass("olli8");
    $("ol li:nth-child(9)").addClass("olli9");
    $("ol li:nth-child(10)").addClass("olli10");
    $("ol li:nth-child(11)").addClass("olli11");
    $("ol li:nth-child(12)").addClass("olli12");
    $("ol li:nth-child(13)").addClass("olli13");
    $("ol li:nth-child(14)").addClass("olli14");
    $("ol li:nth-child(15)").addClass("olli15");
    $("ol li:nth-child(16)").addClass("olli16");
    $("ol li:nth-child(17)").addClass("olli17");
    $("ol li:nth-child(18)").addClass("olli18");
    $("ol li:nth-child(19)").addClass("olli19");
    $("ol li:nth-child(20)").addClass("olli20"); 
</script>

将此更改为

    <script type="text/javascript">
        jQuery(document).ready(function ($) {
        $("ol li:nth-child(1)").addClass('olli1');
        $("ol li:nth-child(2)").addClass("olli2");
        $("ol li:nth-child(3)").addClass("olli3");
        $("ol li:nth-child(4)").addClass("olli4");
        $("ol li:nth-child(5)").addClass("olli5");
        $("ol li:nth-child(6)").addClass("olli6");
        $("ol li:nth-child(7)").addClass("olli7");
        $("ol li:nth-child(8)").addClass("olli8");
        $("ol li:nth-child(9)").addClass("olli9");
        $("ol li:nth-child(10)").addClass("olli10");
        $("ol li:nth-child(11)").addClass("olli11");
        $("ol li:nth-child(12)").addClass("olli12");
        $("ol li:nth-child(13)").addClass("olli13");
        $("ol li:nth-child(14)").addClass("olli14");
        $("ol li:nth-child(15)").addClass("olli15");
        $("ol li:nth-child(16)").addClass("olli16");
        $("ol li:nth-child(17)").addClass("olli17");
        $("ol li:nth-child(18)").addClass("olli18");
        $("ol li:nth-child(19)").addClass("olli19");
        $("ol li:nth-child(20)").addClass("olli20"); 
     });
    </script>

就我而言,我在typescript文件上使用 jquery:

import * as $ from "jquery";

但是这条线给了我一个对象$,它不允许用作函数(我不能使用$('my-selector'))。它解决了我的问题,我希望它可以帮助其他人:

import * as JQuery from "jquery";
const $ = JQuery.default;
我需要在typescript中做到这一点,const $ = (JQuery as any).default; 但你的解决方案奏效了,谢谢
2021-03-28 16:36:39

正如 RPM1984 所指,这很可能是由于您的脚本在加载 jQuery 之前加载的事实造成的。

jQuery 加载在页眉中,此脚本加载在页脚中,所以这不是问题。
2021-04-11 16:36:39