我有很长的HTML版本;我通过找到我的文本并用一个跨度包装它来完成命中突出显示,这使得文本对用户来说是显而易见的
<span id="MySpan" style="background-color:yellow">Some Text</span>
我遇到的问题是,如果他们更改我需要删除第一个搜索的搜索字词,则添加格式很容易;理想情况下无需刷新页面。
我的目标是删除范围(并使用格式)但保留文本。
我可以使用removeChild轻松删除跨度;虽然丢失了所有文字。我不知道如何保持跨度的innerHTML;我最初的想法是在跨度之后追加它,所以我的过程将是这样的。
var OriginalText = MySpan.InnerHTML();
var myDiv = document.getElementByID("MySpan");
-- Something here to append the text after the original span --
myDiv.ParentNode.removeChild(myDiv);
我在Internet Explorer的土地上,如果这让生活更轻松。
答案 0 :(得分:5)
假设跨度仅包含文字:
var span = document.getElementById('MySpan');
var text = span.firstChild;
var parent = span.parentNode;
parent.replaceChild(text, span);
答案 1 :(得分:0)
您可以使用css隐藏数据而不删除跨度本身只需将css“display:none”附加到span“style”属性中。
使用css
display: none;
然后使用
替换数据parentNode.replaceChild(searchstring, span)