【问题标题】:jQuery selectors don't work in consolejQuery 选择器在控制台中不起作用
【发布时间】:2012-06-29 20:26:36
【问题描述】:

我这辈子都做不出来。我正在运行 js,并且“容器状态..”是页面上正在运行的 js 的控制台日志。它显示了一个选择器,但如果我想在控制台中做任何事情,它只会返回 null。我假设我以某种方式在某处编写了 jQuery 函数,就好像我调用了 jQuery

>>> $
function()

这就是我调用选择器的方式

Container state 3 jQuery(div.module-carousel)
>>> $('body')
null  

【问题讨论】:

  • 你确定 jQuery 已经加载了吗?你在哪里打电话给jQuery.noConflict()
  • 试试jQuery('body') 看看会不会有什么不同。
  • arghh suger :p 所以有人更改了对 jquery 的引用!打哈欠
  • 是的,看起来 jQuery 函数被覆盖了:.find 对于无法找到的选择器仍然返回一个(空)数组,而不是 null。还加载了哪些其他脚本?
  • 它是我即将进入的一个新网站。所以这是一个相当大的构建,正在加载 53 个 js 文件:|我认为暂时将控制台用于 jquery 只需要以安全的方式完成,jquery()

标签: javascript jquery console


【解决方案1】:

jQuery 使用 2 个命名空间,jQuery$。另一个库可以使用$。尝试使用jQuery 而不是$(假设它也没有被覆盖):

jQuery('body');

或将 jQuery 包装在一个即时函数中并在其中使用 $,这样您就无需在现有代码中替换 $

(function($){
    //"$" in here is jQuery
    //code that uses $ as jQuery will work in here
}(jQuery)); //pass in jQuery and execute

【讨论】:

    【解决方案2】:

    您可以在控制台上编写任何命令之前使用它。

    $ = jQuery.noConflict();
    

    【讨论】:

      【解决方案3】:

      如果您的$ 过载(但不是jQuery),并且您想在控制台中工作,只需执行以下操作:

      $ = jQuery;
      

      就这么简单。

      如需更完整的解决方案(真正的开发,而不仅仅是控制台),请使用@Joseph the Dreamer 的解决方案。

      【讨论】:

      • 如果一个页面已经有 jQuery 在不同的变量名下......说'jqry'。我怎样才能在控制台中找到这个'jqry' var name..而不通过 h​​tml 源代码。例如我想输入 'jQuery(show me var name)' 应该在 chrome 控制台中打印出 'jqry'。有什么想法吗?
      【解决方案4】:

      Firefox 和 Chrome 都将$ 定义为控制台中document.getElementById 的简写。当页面定义 $ 时,此速记将自动被覆盖。

      所以,加载 jQuery(例如through a bookmarklet),你就可以使用 jQuery 选择器了。

      如果您不需要 jQuery 特定的选择器,也可以使用 $$,它是 document.querySelectorAll 的简写,支持 CSS(3) 选择器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-08
        • 2011-05-29
        • 1970-01-01
        相关资源
        最近更新 更多