2012-10-08 43 views
2

我应该如何定义从左到右发生了什么。我很困惑与[0] .nameofsomething部分。愚蠢的quesiton奖金,[0]可以是任何其他整数?它看起来像jQuery选择器现在命名空间..这是正确的?了解新的关键字关联jquery选择器

$("#someselector")[0].nameofsomething = new MyObject(); 

,可能这也可以写成这样....

$("#someselector").nameofsomething = new MyObject(); 

,并产生相同的结果吗?

感谢您的任何见解!

回答

3

[0]选择DOM对象,所以你要添加到元素。

$("#someselector")[0].nameofsomething // this is same thing as document.getElementById("someselector").nameofsomething = {}; 

要添加到jQuery对象

$("#someselector").nameofsomething 

因此,他们是不一样的东西。

+0

谢谢epascarello快速回答。我还有一个疑问要问我的主要问题。为什么人们需要通过使用[0]来获得“原始”DOM,而不仅仅依赖于jquery选择器的名字?我想我是新来理解这个动机的逻辑......谢谢! – blackhawk

+1

没有理由。人们可能不知道如何在jQuery中获得某些东西,所以他们使用DOM。有些人想要与非jQuery代码集成并使用DOM传递给另一个脚本。他们可能想要与元素进行交互而不使用jQuery。有时候是为了速度,有时候是因为缺乏知识,有时候更容易。 – epascarello

+0

如果你想选择一个元素并保存为jQuery,使用['eq()'](http://api.jquery.com/eq/)。 – epascarello