我有一篇带有一些注释的HTML文章,这个注释引用了正文中的一些文本。我想将此文本包装在<span>
标记中,以便我可以根据需要对其进行修改。
我有一个SPARQL查询,它返回一些信息和三个重要变量:
元素 - &gt;文本
的容器元素的id开始 - &gt;注释的第一个字符在元素内的位置
结束 - &gt;注释的最后一个字符在元素内的位置
下面是一个可能会澄清的例子。
使用此元素:
<p class="metadata-entry" id="element_id">
<span class="generated" id="span1">Publisher: </span>
BioMed Central
<span class="generated" id="span2"> (</span>
London
<span class="generated" id="span3">)</span>
</p>
由于我在运行查询时对“London”这个词有注释,我获得了:
element = "element_id"
start = 27
end = 33
现在,在我的ajax调用返回这3个值之后,如何在一个范围中包装单词“London”,以便我可以将其背景设置为特定的颜色?
答案 0 :(得分:0)
这可能有点脏,但我认为它应该有用。由于您拥有包含&#34; London&#34;的元素,因此您可以将该元素的HTML替换为当前所在内容的修改版本。
您可以在此处查看如何使用jquery html函数:
How to replace innerHTML of a div using jQuery?
基本上,你要做的是将它作为一个吸气剂,将HTML从&#34; element_id&#34;中取出来。元素,使用Javascript字符串函数通过在您拥有的开始和结束索引处添加span标记来修改它,然后使用html函数用修改后的字符串替换&#34; element_id&#34;的HTML。
我希望这适合你!
编辑:为了更好地说明这一点,这里基本上是你正在做的事情:
var currentHTML = $(element).html();
var newHTML = currentHTML.substring(0, start) + "<span style='background-color: green;'>" + currentHTML.substring(start, end) + "</span>" + currentHTML.substring(end, currentHTML.length);
$("element_id").html(newHTML);