我意识到以下情况:
foo = {a:'aa', b:'bb'}
$.each(foo, function(k,v) { ...
$(foo).each(function(k,v) { ...
在两种情况下,k,v的值都不同。难道我是奇怪的还是jquery不一致?
修改
如果你来这里解释$ .each和$(foo).each之间的区别,我想澄清我知道两者之间的区别。
答案 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 ) {...
我希望能够解决问题