我的程序中有一个API调用,结果是一个HTML文档。我必须将API结果中的HTML代码显示到浏览器中。我还从API获得了两个整数值(例如,start_point和end_point)。我的要求是突出显示HTML文档中的文本。文本从start_point值到end_point值突出显示。 假设以下HTML代码来自我的API
<section>
<p>Lorem ipsum dolor init </p>
<p>Lorem ipsum dolor init </p>
<div>
<p>Lorem ipsum dolor init </p>
<p>Lorem ipsum dolor init </p>
</div>
<p>Lorem ipsum dolor init </p>
<p>Lorem ipsum dolor init </p>
</section>
现在考虑 start_point = 16 和 end_point = 32 。
因此,根据我的要求,由于start_point为16且end_point为32,因此计数从标记中。因此,上面的html会在浏览器中显示如下:
Lo rem ipsum dolor i
nit
Lorem ipsum dolor初始化
Lorem ipsum dolor初始化
Lorem ipsum dolor初始化
Lorem ipsum dolor初始化
Lorem ipsum dolor初始化
但是现在考虑以下情况:start_point在某个标签的中间,而end_point在同一标签的关闭之后。
例如,考虑 starting_point = 30 和 end_point = 50 。因此,我的HTML高亮应如下所示:
Lorem ipsum dolo r init
Lor
em ipsum dolor初始化
Lorem ipsum dolor初始化
Lorem ipsum dolor初始化
Lorem ipsum dolor初始化
Lorem ipsum dolor初始化
目前我正在使用这样的JavaScript代码:
html.slice(0, start_point) + `<span id="highlightText">` + html.slice(start_point + 25, end_point) +`</span>` + html.slice(end_point);
此处需要25个空间,这就是为什么我在第二个切片中添加了25个空间的原因。然后为该id为“ highlightText”的跨度提供背景色。由于我必须关闭容器标签内的span标签,因此无法正常工作。我不想使用jQuery,所以请提出纯JavaScript的答案。