Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何替换可滚动div的内容而不跳到顶部?_Javascript_Jquery - Fatal编程技术网

Javascript 如何替换可滚动div的内容而不跳到顶部?

Javascript 如何替换可滚动div的内容而不跳到顶部?,javascript,jquery,Javascript,Jquery,我有一个带有溢出:auto样式的div。它通过AJAX填充一个结果表。这个div中的行是可编辑的,每次编辑我都会刷新内容。问题是,如果用户编辑了div底部的内容,刷新会将它们带回顶部 我在Firefox中使用了一些锚,但并不是所有版本的IE都能在div中使用锚 有没有办法在不让滚动条跳转到顶部的情况下替换这样一个div的内容?还有其他建议吗?如果可能的话,我喜欢刷新整个结果集,而不仅仅是更新的行,但是如果没有解决办法,我想我会继续这样做。在更改数据之前,存储scrollTop属性,然后恢复它 像

我有一个带有
溢出:auto
样式的div。它通过AJAX填充一个结果表。这个div中的行是可编辑的,每次编辑我都会刷新内容。问题是,如果用户编辑了div底部的内容,刷新会将它们带回顶部

我在Firefox中使用了一些锚,但并不是所有版本的IE都能在div中使用锚


有没有办法在不让滚动条跳转到顶部的情况下替换这样一个div的内容?还有其他建议吗?如果可能的话,我喜欢刷新整个结果集,而不仅仅是更新的行,但是如果没有解决办法,我想我会继续这样做。

在更改数据之前,存储scrollTop属性,然后恢复它

像这样:

var oldScrollTop = div.scrollTop;
div.innerHTML = "new content";
div.scrollTop = oldScrollTop;

好主意。在我的情况下,这有点棘手,因为刷新时返回的记录数不能保证相同,即滚动条可能需要与顶部的像素不同。我发现,在IE中使用页面锚实际上和Firefox一样有效,只是它们不能链接到元素。我将唯一的行ID移动到每行中的第一个行,这样做很有效。