我目前正在学习jquery,我在教程中遇到了这段代码:
$('textarea').scroll(function(){
var y = $('textarea')[0].scrollHeight;
var x = $(this)[0].scrollHeight;
});
我的问题是关于[0]
我知道$(' textarea')是一个数组,如果我只想要第一个元素的scrollHeight,则添加[0]是有意义的。
但是当我在事件处理程序中而不是$(这个)时,根据定义是单个元素
(当前正在滚动的元素)
那么我为什么要指定第[0]个对象,其中$(this)显然是一个单独的对象而不是一个数组
谢谢你
PS。如果你downvote请评论原因
答案 0 :(得分:-1)
评论中提出的各点的摘要。
如果你有一个DOM元素而你想从中访问一个属性,则没有理由做$(element)[0].property
,因为[0]只是从jQuery结果堆栈中获取第一个元素,是你给它的单一元素。
如果您正在执行查询并希望从其中一个获取某个属性,则有几种方法可以执行此操作。
//get the 5th element off the stack and access the property
$(selector)[4].property
//get the 5th element off the stack, with the jQuery method, and access the property
$(selector).get(4).property
//get the 5th element off the stack, as a jQuery object still, and get the property with the jQuery method
$(selector).eq(4).prop('property')