为什么我必须使用$('#id')[0] .srollHeight而不是$('#id')。srollHeight

时间:2014-04-02 03:48:56

标签: jquery css

我有一个溢出元素

<div class="conversation" id="conversation"  data-pUserName="'.$p_username.'"  data-userName="'.$username.'" >
</div>

并尝试默认将滚动条置于底部

$("#conversation").scrollTop($("#conversation")[0].scrollHeight); 

问题是我必须使用$("#conversation")[0].scrollHeight以使其工作,即使我按ID选择元素,我尝试使用$("#conversation").scrollHeight并且它不起作用。 “[0]”我认为是.get(0)的捷径,并返回所选元素的第一个元素(我想只有当元素是一个类并返回第一个元素时)

3 个答案:

答案 0 :(得分:2)

因为您正在使用jQuery对象($('#id')),而scrollHeight是DOM对象的属性,而不是jQuery对象。您还可以使用jQuery prop函数:$('#id').prop('scrollHeight')

答案 1 :(得分:0)

这是因为scrollHeight不是jQuery方法,它是一个DOM属性。

因此,您需要一个DOM对象才能获得scrollheight值。

$("#conversation")将为您提供jQuery对象,因此$("#conversation")[0]可帮助您将此jQuery对象转换为DOM元素。

答案 2 :(得分:0)

你必须使用[0]因为当你使用jQuery时,你实际上并没有选择元素。您正在选择包含该元素的jQuery对象。因为scrollHeight不是jQuery对象的属性,而是实际元素的属性,所以需要使用[0]来引用实际元素。