2009-08-20 103 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)