$不是函数-jQuery 错误

我已经很好地加载了 jQuery,我已经检查了四次,尽管我在 FireBug 中得到了这个错误“ $is not a function”,而且我的代码不能工作。

这是我的密码:

<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>
297856 次浏览

正如 RPM1984所指出的,这很可能是由于您的脚本在加载 jQuery 之前就已经加载了。

这个错误有两个可能的原因:

  1. 您的 jquery 脚本文件引用无效
  2. 尝试将 jquery 代码放在 document.ready 中,如下所示:

    $(document) . ready (function (){

    你的密码。

    });

干杯

当您忘记在页面中包含 jQuery 库或者库之间存在冲突时,这个错误就会发生——例如,您正在页面上使用任何其他的 javascript 库。

更多信息请看以下内容:

当 jQuery 不存在时,您得到的是 $ is undefined而不是您的消息。

在编写代码之前,是否检查了是否有一个名为 $的变量?
检查 $in firebug 的值以查看它是什么。

虽然不太可能,但我还是忍不住为你的课堂作业写一段简短的代码:

    var i = 1;
$("ol li").each(function(){
$(this).addClass('olli' + i++);
});

这真的很难说,但9001页面上的广告之一可能是重击 $对象。

JQuery 提供了全局 jQuery对象(出现在您的页面上)。您可以执行以下操作来“获取”$:

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

如果您认为存在 jQuery 问题,请使用库的调试(非生产)版本。

而且,编辑这样的实时网站可能不是最好的选择。

在 Wordpress 中,对它包含的 jQuery 文件 jQuery.noConflict()进行调用(滚动到它包含的文件的底部,jQuery 就可以看到这一点) ,也就是说 $不起作用,但是 jQuery可以,所以你的代码应该是这样的:

<script type="text/javascript">
jQuery(function($) {
for(var i=0; i <= 20; i++)
$("ol li:nth-child(" + i + ")").addClass('olli' + i);
});
</script>
<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>

在我的例子中,我在打印文件中使用 jquery:

import * as $ from "jquery";

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

import * as JQuery from "jquery";
const $ = JQuery.default;

使用 jQuery 获取 $。

有相当多的答案基于情况。

1)尝试用 “ jQuery”代替 '$'

2)检查执行的代码是否总是在主 jquery 脚本之下。

<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){


});
</script>

3)将 $传入函数,并添加“ jQuery”作为主函数,如下所示。

<script type="text/javascript">
jQuery(document).ready(function($){


});
</script>

我相信在新版本的 jQuery 中,单独使用 $是不被推荐的。改用下面的语法:

jQuery(function($) {
//magic here
})