2011-02-04 45 views
4
<div id="mydiv"> 
    <p> 
     <b><a href="mypage.html">This is an example<a>.</b> 
     <br> 
     This is another example. 
    </p> 
</div> 

<script type="text/javascript"> 
    var mystr = document.getElementById('mydiv').innerHTML; 
    ..... 
</script> 

我要清除所有標籤,並得到鹽文本,如何從字符串清除標籤用JavaScript

mystr = "This is an example this is another example."; 

我怎麼能這樣做?

回答

10

使用innerTexttextContent

var element = document.getElementById('mydiv'); 
var mystr = element.innerText || element.textContent; 

DEMO

我剛看到字符串仍然包含換行符。你可能想與replace其刪除:

mystr = mystr.replace(/\n/g, ""); 

更新:

由於@Šime Vidas指出了他的意見,似乎你必須處理的白色空格位不同地修復IE中的字符串:

mystr = mystr.replace(/\s+/g, ' '); 
+1

替換()將只更換一個換行符 - 在這裏看到:HTTP:/ /jsfiddle.net/yPj3a/4/ – 2011-02-04 14:24:57

1

嘗試:

document.getElementById('mydiv').innerText || document.getElementById('mydiv').textContent; 
0

您可以通過所有孩子的循環,並讀取它們.innerText。然後,您可以輕鬆地連接每個孩子的文本,並獲取所有沒有標籤的文本。

2

這是一種不同的方法 - 用一個正則表達式替換刪除標籤:

document.getElementById('mydiv').innerHTML.replace(/\n|<.*?>/g,'') 

下面是一個fiddle