元素的scrollheight给出未定义的值

在一个元素我给CSS overflow: scroll; 。 现在在jQuery中我希望它具有原始高度(包含所有子元素的高度)。 这个元素下的孩子是动态变化的。 我想在滚动事件上有高度。 这是代码:

 $("#container").scroll(function(e) { scrollAll(); }); function scrollAll(){ var elemHeight = $("#container").scrollHeight; var scrollHeight = $("#scrollbars").scrollHeight; var ratio = elemHeight / scrollHeight; $("#outup").html( elemHeight +" and "+ scrollHeight +" ratio "+ ratio +" = "+ ($("#container").scrollTop())); } 

问题:它抛出scrollHeight is undefined错误。 怎么了?

jQuery中没有scrollHeight – 它是scrollTop()

 var elemHeight = $("#container").scrollTop(); var scrollHeight = $("#scrollbars").scrollTop(); 

或者,如果要使用本机scrollHeight属性,则需要直接访问jQuery对象中的DOM元素,如下所示:

 var elemHeight = $("#container")[0].scrollHeight; var scrollHeight = $("#scrollbars")[0].scrollHeight; 

如果您使用的是Jquery 1.6或更高版本,请使用prop访问该值。

 $("#container").prop('scrollHeight') 

以前的版本用于从attr获取值,但不是1.6之后的值。