2012-06-04 54 views
0

我只是在学习如何正确使用萤火虫。我看了一个howto,作者只是输入$('p');在控制台中,它显示所有的p标签。在我的情况下,即使网站上有很多p标签(我的本地Drupal 7网站),它总是显示NULL。还有我试过的所有其他标签。我必须把另一个$放在前面,这有点作用?!我错误地发现另一种方式不起作用?在萤火虫jquery抛出总是NULL

+5

可能是您的网站不包含jQuery库。 – thecodeparadox

+0

听起来就像你已经包含了MooTools,它使用'$(id)'来选择一个ID和'$$(选择器)'来选择一个选择器(比如''p“')。 –

+0

我假设每个Drupal 7网站都有jquery,但jQuerify按钮告诉我“此页面已经使用jQuery v1.4.4”。我没有MooTools或类似的东西,只有Firefox 12.0与Firebug和Firequery。 –

回答

1

如果您的网站已经包含jQuery库,任何jQuery过程都将在浏览器中执行console,否则您将无法获得任何console

这是不可能的jQuery得到NULL,因为如果没有元素存在,它将返回[]。或者,您可能会获得undefined,但NULL永远不会。

0

试试这个:

(function($) { 
    $('p'); 
})(jQuery); 
+0

>>>(function($){$('p');})(jQuery); undefined –

+0

你是我必须把它包装到这个在萤火虫控制台,但仍然给我undefined回... –

+0

尝试'(函数($){返回$('p');})(jQuery);'相反 –

2

,因为它没有返回或打印任何东西前面的例子没有做任何事情。 试试这个:

(function($) { 
    console.log('this works'); 
    return $('p'); 
})(jQuery); 
+0

确实有效! :)所以我总是要包装一切? –

+0

是的,这是我们必须为javascript插件兼容性付出的代价:P –

0

尝试在Firebug控制台发出以下命令:

jQuery.toSource() 
$.toSource() 

如果您的jQuery包括在页面上,他们都应该返回相同的非空值,即,一大块源代码作为一个字符串。

如果你没有JQuery的包含在页,那么它的棘手:$在Firebug的控制台的Firebug command line API 内部功能,这是document.getElementById()一个简单的快捷方式是不是强大,因为JQuery的$和他们不以同样的方式工作。然后,$('p')在HTML源代码中查找包含id="p"的元素。没有任何,所以你得到空。

$$是Firebug命令行API的另一个功能,它相反作为CSS选择器。然后,$$('p')为您提供一组来自HTML源的所有<p>元素。