JQuery不一致?

时间:2012-01-23 00:33:01

标签: jquery

我意识到以下情况:

foo = {a:'aa', b:'bb'} 

$.each(foo, function(k,v) { ... 
$(foo).each(function(k,v) { ... 

在两种情况下,k,v的值都不同。难道我是奇怪的还是jquery不一致?

修改

如果你来这里解释$ .each和$(foo).each之间的区别,我想澄清我知道两者之间的区别。

4 个答案:

答案 0 :(得分:3)

jQuery()文档的"Working with plain objects"部分下,有许多选项,但枚举.each()不是其中之一。

  

使用普通对象

     

目前,jQuery包含的普通JavaScript对象支持的唯一操作是:.data().prop().bind().unbind().trigger()和{ {1}}。在普通对象上使用.triggerHandler()(或任何需要.data()的方法)将在名为.data()的对象上生成一个新属性(例如jQuery123456789)。

您应该使用通用的jQuery{randomNumber}枚举器。

答案 1 :(得分:0)

foo单独是一个对象文字,$(foo)是一个jQuery对象。

答案 2 :(得分:0)

因为你是用第二种方法“选择”对象(即DOM东西),而不是迭代对象。

答案 3 :(得分:0)

在第一个示例中,您将迭代一个等于:

的Object
$.each( foo, function( key, value ) {...

和你的第二个例子,你正在迭代选择的等同于

的DOM节点
 $(foo).each( function( index, element ) {...

我希望能够解决问题