Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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 在HTML中向下滚动到字符编号N处_Javascript_Jquery - Fatal编程技术网

Javascript 在HTML中向下滚动到字符编号N处

Javascript 在HTML中向下滚动到字符编号N处,javascript,jquery,Javascript,Jquery,我可以计算一个字符的顺序,我想打开一个HTML页面 是否可以(使用jQuery)编写一个脚本,在HTML标记中向下滚动到第n个字符的位置 假设这是我的HTML: <p>Hello</p> <p>Hello</p> <p>Scroll here</p> <p>Hello</p> 你好 你好 滚动此处 你好 我如何向下滚动到HTML中的第28个字符(所以 滚动此处 页面将从哪里开始)?JavaScri

我可以计算一个字符的顺序,我想打开一个HTML页面

是否可以(使用jQuery)编写一个脚本,在HTML标记中向下滚动到第n个字符的位置

假设这是我的HTML:

<p>Hello</p>
<p>Hello</p>
<p>Scroll here</p>
<p>Hello</p>
你好

你好

滚动此处

你好

我如何向下滚动到HTML中的第28个字符(所以

滚动此处


页面将从哪里开始)?

JavaScript在DOM上工作,DOM不一定与HTML有一对一的关系,因此任何方法都需要大量的技巧


您是指有效字符还是包括空格?

如果滚动到
元素也足够了,请按如下操作

$(document.body).scrollTop($('p:nth-child(3)').offset().top);
但是,除了偏移值之外,您还可以设置如下值

$(window).scrollTop(28);
另一种方法是调用
scrollIntoView()
like

$('p:nth-child(3)')[0].scrollIntoView();

没有明显的特征。它可以是任何UTF-8字符。我想要向下滚动的位置是用PHP和一个复杂的脚本计算的。然后我将这个位置(整数)发送到javascript,我需要向下滚动。当您运行javascript时,整个页面HTML已经被解析为DOM结构,原始HTML中的所有字符或行号记录早已消失。您只能从DOM的文本内容中计算字符数(对于空格,IE和其他浏览器中的数字也不一样)。@bobince错了。在输出HTML之前,我用PHP计算位置,我可以在javascript中回显它。。。所以我知道我要向下滚动到的位置。我只需要一个javascript函数就可以了。没错。您可以随意将HTML字符索引
28
传递给JavaScript,但是这个数字对于从那里运行的任何脚本来说都毫无意义,因为HTML已经消失了。它被解析成一个DOM,而原始文件没有保留。您可以使用
innerHTML
从DOM获得序列化,但是输出几乎肯定与您输入的标记不同,因此索引是无用的。如果要滚动到某个点,则必须以幸存的方式标记该点,例如在文本周围放置一个
,带有
id
,您可以拾取并滚动到该点。@b对不起,您是对的。我实际上使用了PHPDOM,并在HTML中添加了一个id=“scroll into view”的空白div标记,我使用了它。