jquery对象是围绕一个DOM元素数组的包装器。所以“jquery数组”
是
jQuery对象。对象包含页面上与选择器匹配的每个元素。对jquery对象调用的大多数方法都隐式地循环遍历数组中的所有元素,并应用于所有元素。
或者如果只是有很多的宽容
内置于每个函数中
允许单个元素或
元素集合。
这是一种情况。实际上,每个方法都在一个元素上工作,但jquery调用它的次数与它要处理的对象的次数一样多。我相信它确实有用
.each()
在内部这样做,所以如果你理解
()
然后您了解jquery的隐式循环是如何工作的。
有些方法不适用于集合中的每个对象,但在它们的文档中没有这样说。例外是应用于每个元素都不合理的方法。例如,如果你打电话
$('.blah').innerHeight()
您将获得jquery对象中第一个元素的高度
$('.blah.')
.
还有一些方法可以获取和设置属性。获取时,它们从第一个元素返回值,设置时,它们应用于所有匹配的元素。例如,如果你打电话
$('.blah').css('font-size')
您可以从
第一
集合中的元素,但如果调用
$('.blah').css('width', 100)
您将设置宽度样式
每一个
jquery集合中的元素。
注意,实际上可以将jquery对象视为数组。只需使用数组表示法来访问元素。
$jQ_obj = $('.classy').find('.refined');
element = $jQ_obj[3];
这将存储具有类的页面上的第四个元素
refined
是元素的子元素,
classy
. 结果对象
element
是原始DOM对象。
第二点,
由于上述答案已被删除,请确保您了解
()
作品。您需要将要应用于每个匹配元素的函数传递给它,就像事件处理程序一样。所以应该是:
jQuery('.someclass').each(function(i) { //don't forget the dot!
$(this).click(function() {
alert("I've been clicked!");
});
});
在回调中
()
这个
this
关键字是指当前正在循环通过的dom元素,传递给回调的参数是循环索引。
这
是一个原始的dom元素(把它想成写
$('.someclass')[i]
)所以您必须从它创建一个jquery对象来执行调用
.click()
关于它。