在jquery中写作方式的含义是什么?

时间:2012-02-02 04:07:10

标签: jquery

$.each(obj,function(key,value) {})

我是jquery的新手,我知道有两种方法来编写这样的结构:

$('document').ready(function(){}); or     $(function(){});

为什么$.each().置于$而不是$(each())

`

3 个答案:

答案 0 :(得分:1)

因为jQuery对象既是函数又是对象。作为一个对象,它包含许多方法属性。

您可以这样调用它,然后将其用作函数:

$('a')

您可以访问其属性,然后将其用作对象:

$.each(...)

当你将它作为一个函数使用时,它会返回一个jQuery对象,因此大部分时间你首先将它作为一个函数使用,然后作为一个对象:

$('a').hide();

答案 1 :(得分:1)

在JavaScript中(并且记住,jQuery是一个JavaScript库,它不会做任何你自己在JavaScript中无法做到的事情)函数是一种对象。希望您已经知道如何定义和调用JavaScript函数,其语法与许多其他语言类似:

function myFunction() {
   alert("This is myFunction");
}

myFunction();      // alerts "This is myFunction"

但是因为函数也是一个对象,它可以有其他属性:

myFunction.someProperty = "test";
alert(myFunction.someProperty);    // alerts "test"

在该示例中,someProperty是一个简单的字符串,但您也可以创建引用函数的属性,即方法:

myFunction.someMethod = function() {
                          alert("This is someMethod");
                        };

myFunction.someMethod();    // alerts "This is someMethod"

你问过的jQuery语法基本上和上面一样,除了起初看起来更复杂,因为$()函数根据传递给它的参数类型做了不同的事情。 。但

$(function(){});
// is equivalent to my example
myFunction();

$.each();
// is equivalent to my example
myFunction.someMethod();

一些jQuery代码变得更加混乱,因为在许多情况下,jQuery函数调用返回一个“jQuery对象”,它本身有一堆定义的方法。

$(document)
// returns a jQuery object that has a "ready" method so you can say
$(document).ready();
// which is equivalent to 
var doc = $(document);
doc.ready();

许多jQuery方法返回相同类型的jQuery对象,因此您可以将调用链接在一起:

$('div').hide().fadeIn().fadeOut().show();

最后的.show()也会返回一个jQuery对象,但我们没有对它做任何事情。

这些概念都是JavaScript语言的标准部分,因此我建议您通过一个好的JavaScript教程。如果你看一下jQuery源代码(即jQuery.js的内容),有很多令人困惑的代码需要消化,但是如果你开始玩简单的东西就像上面的几个例子那样你就会得到这个它的。

答案 2 :(得分:0)

$.each函数有助于迭代JQuery对象以及其他集合(如数组或对象)。遍历JSON数据是$.each非常有用的一个很好的例子。