我真的无法解决这个问题。我运行了JS代码,'container state...'是页面上正在运行的JS的控制台日志。它显示了一个选择器,但是如果我想在控制台中执行任何操作,它只会返回null。我猜测可能是在某个地方覆盖了jQuery函数,因为如果我调用jQuery,它也会返回null。
>>> $
function()
这是我调用选择器的方式。
Container state 3 jQuery(div.module-carousel)
>>> $('body')
null
我真的无法解决这个问题。我运行了JS代码,'container state...'是页面上正在运行的JS的控制台日志。它显示了一个选择器,但是如果我想在控制台中执行任何操作,它只会返回null。我猜测可能是在某个地方覆盖了jQuery函数,因为如果我调用jQuery,它也会返回null。
>>> $
function()
Container state 3 jQuery(div.module-carousel)
>>> $('body')
null
jQuery使用了两个命名空间,jQuery
和$
。另一个库也可能使用了$
。尝试使用jQuery
而不是$
(假设它没有被覆盖):
jQuery('body');
$
,这样您就不需要替换现有代码中的$
:(function($){
//"$" in here is jQuery
//code that uses $ as jQuery will work in here
}(jQuery)); //pass in jQuery and execute
在控制台输入任何命令之前,您可以使用此方法。
$ = jQuery.noConflict();
$
被重载了(但不是 jQuery
),并且你想在控制台中使用它,只需执行以下操作:$ = jQuery;
非常简单。
如果需要更完整的解决方案(实际开发而不仅仅是控制台),请使用@Joseph the Dreamer的解决方案。
Firefox和Chrome都将$
定义为控制台中document.getElementById
的速记方式。当页面定义$
时,此速记将自动被覆盖。
因此,加载jQuery(例如通过书签)即可使用jQuery选择器。
如果不需要jQuery特定的选择器,则还可以使用$$
,它是document.querySelectorAll
的速记方式,支持CSS(3)选择器。
jQuery.noConflict()
吗? - Florian MargainejQuery('body')
看看是否有所不同。 - James Allardice$
函数。如果它返回类似于function(a,b){return new e.fn.init(a,b,h)}
这样的内容,则表示它是jQuery。 - Bergi