什么应该在$ jQuery之后使用一段时间?

时间:2010-08-01 22:06:04

标签: javascript jquery syntax

我是JQuery的初学者。

$后点应该何时使用?

$.trim(str)而非$trim(str)

有些情况没有点:$(document).ready,但不是$.(document).ready

感谢。

4 个答案:

答案 0 :(得分:19)

在jQuery中,$是一个变量名,如foobar,它引用全局jQuery对象。如果要访问jQuery对象上的属性,则使用点。这些基本相同:

$.property
jQuery.property

(由于$是一个与其他任何变量一样的变量,因此您可以将其设置为您喜欢的任何内容。如果您在包含jQuery库后包含Prototype库,则可能会发生这种情况。 ,这将使$指向document.getElementById函数的别名。)

jQuery对象碰巧也是一个函数,所以你可以像调用任何其他函数一样调用该函数:

$(arguments)
alert("arguments!")

另一方面,$trim只是另一个全局变量,如$location,它可能是您自己定义的函数:

var $trim = function(arguments) {
    return "foo";
};

$trim(str)

答案 1 :(得分:18)

我不相信你有一个选择,只有一种语法是正确的,并且实际上会有效。 $符号只不过是jQuery函数的简写符号,所以当你写:

$('some selector')

您正在调用一个名为jQuery的函数,并传入一个字符串,或者在您的情况下,您正在传递document对象。

当涉及调用方法(例如修剪等辅助方法)时,您需要使用以下语法jQuery.trim()$.trim()。这很容易检查自己,试试这个:

typeof($.trim) //returns "function"
typeof($trim) //returns "undefined"

答案 2 :(得分:3)

当你访问jQuery的静态方法时,在DOM的原型中是不可用的。 trim是API公开的静态方法。

没有$.fn.trim我们无法可靠地依赖String.prototype.trim,因为方法可能不同。

关于未定义的$trimtrim是jQuery的$方法。您可以执行$['trim']$.trim,这应该是访问它的唯一方式。

答案 3 :(得分:2)

$.foo语法意味着$被视为具有名为foo的字段的对象,该字段通常是您正在调用的函数。所以这与名为foo的独立函数没什么区别 - 它只是以$.为前缀,以区别于任何其他函数并将其与jQuery库相关联。

当你使用$(something).foo时,你将something传递给jQuery函数,结果取决于你传递的内容(可以是一个查找现有对象的选择器,或者它可以是一堆HTML来构建一个新对象,或者它可以是一个在页面加载时注册运行的函数)。在任何情况下,您都会在生成的返回对象上调用foo,例如,如果您传递的选择器标识了一个类,则可以将其应用于多个DOM对象。

当jQuery函数对DOM对象(HTML页面的一部分)以外的其他东西进行操作时,使用第一种语法。例如,字符串($.trim)或数组($.each)。这些不是页面的元素,它们只是JavaScript中的纯数据。

在对DOM元素进行操作时使用第二种语法 - 使用$(something)创建一个jQuery对象,它是一个包含零个或多个DOM元素的包装器。然后在返回的包装器上调用函数,以方便地操作它包装的对象。