当在事件处理程序中时,在$(this)[0]表达式中指定[0]的原因是什么?

时间:2018-03-14 19:33:35

标签: javascript jquery web

我目前正在学习jquery,我在教程中遇到了这段代码:

$('textarea').scroll(function(){
    var y = $('textarea')[0].scrollHeight;
    var x = $(this)[0].scrollHeight;
});

我的问题是关于[0]
我知道$(' textarea')是一个数组,如果我只想要第一个元素的scrollHeight,则添加[0]是有意义的。
但是当我在事件处理程序中而不是$(这个)时,根据定义是单个元素
(当前正在滚动的元素) 那么我为什么要指定第[0]个对象,其中$(this)显然是一个单独的对象而不是一个数组 谢谢你 PS。如果你downvote请评论原因

1 个答案:

答案 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')