$('#div1').scrollTop($('#div1')[0].scrollHeight)
我的意思是,为什么我们需要在所选元素之后指定[0]。它表明了什么?它似乎没有指示div元素的子元素,因为[1]即使有更多的子元素也未定义。如果我发出警报(('#div1')[0]),它会显示[object HTMLDivElement]。 我实际上从未在jQuery中看到过这种索引。所以我想知道这个索引零表示什么,以及在其他情况下使用它?我会感激任何帮助。
答案 0 :(得分:1)
.scrollHeight
不是 jQuery的方法:http://api.jquery.com/scrollHeight/
Element.scrollHeight 是 JavaScript 方法,返回
元素内容的高度,包括因溢出而在屏幕上看不到的内容
由于您将选择器"#div1"
传递给jQuery对象$( )
,所以
它将返回HTMLElements的数组对象集合 。
$('#div1') // [object Object] { 0: [object HTMLDivElement] { ...obj props...}}
^--Object Array ^--key 0 ^--Element Obj. ^--Obj. properties
因此
[object Object].scrollHeight // undefined
但如果您从该数组到达代表 HTMLDivElement 的[0]
键:
[object Object][0].scrollHeight // 800
您可以访问{...obj props...}
就是其中之一的特定元素所需的对象属性scrollHeight
。
回顾,
(JS):
var el = document.getElementById("div1"); // HTMLDivElement
var sh = el.scrollHeight; // 800
(jQuery的)
var el = $("#div1"); // Object Array (note the difference)
var sh = el.scrollHeight; // undefined
var sh = el[0].scrollHeight; // 800
要在普通jQuery (v.1.6 +)中获取元素scrollHeight
,您可以
var sh = $("#div1").prop('scrollHeight'); // 800