document.getElementById('logbox').scrollTop =
document.getElementById('logbox').scrollHeight;
我尝试了$('#logbox').scrollTop
,但没有这个属性。
如何通过jQuery对象访问DOM属性?
答案 0 :(得分:3)
这与jQuery一样,同时保留了理智,因为库中没有对scrollHeight
的直接支持(尽管有scrollTop
)。
$('#logbox').each(function() {
this.scrollTop = this.scrollHeight;
});
您不应该像其他答案所建议的那样使用attr
来访问scrollHeight
; attr
用于操作 HTML 属性(href,alt,title等),scrollHeight
是 DOM 属性。
答案 1 :(得分:2)
$(“#logbox”)。attr(“scrollTop”,$(“#logbox”)。attr(“scrollHeight”));
答案 2 :(得分:1)
以下应该这样做:
$('#logbox').scrollTop($('#logbox').attr("scrollHeight"));
jquery中有一个scrollTop函数,但没有scrollHeight函数。如果将值传递给scrollTop,则用于设置滚动顶部偏移量,因此您必须使用attr函数读取相关节点的scrollHeight属性,以实现您要执行的操作。
答案 3 :(得分:0)
试试这个:
var elem = $('#logbox');
elem.scrollTop(elem.scrollTop());
答案 4 :(得分:0)
使它成为“更多jQuery”的几种方法 - 所有这些都取决于你需要将scrollTop设置为scrollHeight的频率。
// jQuery to get the DOMElement only
var elem = $('#logbox')[0]; // $('#logbox').get(0) works too
elem.scrollTop = elem.scrollHeight;
// a little more jQuery way - allows you to pass more than one matched element,
// $.fn.each() passes each DOMElement in as the context of `this`
$('.scrollers').each(function() {
$(this).scrollTop(this.scrollHeight);
});
// even more jQuery way - make your own plugin
$.fn.scrollToBottom = function() {
return this.each(function() {
$(this).scrollTop(this.scrollHeight);
});
};
$('#logbox').scrollToBottom();