2009-08-20 64 views
1

我在HTML的很长一段中有一段跨度;我已经找到我的文字,并用跨度,这使得文本明显附加文本Javascript

<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的土地,如果这使生活更轻松。

回答

5

假设跨度将只包含文本:

var span = document.getElementById('MySpan'); 
var text = span.firstChild; 
var parent = span.parentNode; 
parent.replaceChild(text, span); 
+0

优秀工作第一次更换数据。谢谢 – u07ch 2009-08-20 11:47:06

0

您可以使用CSS来隐藏数据不删除跨度本身只是追加的CSS“显示:无”到跨度中的“风格”属性。

使用CSS

display: none; 

和,然后用

parentNode.replaceChild(searchstring, span)