如何使用JavaScript清除字符串中的标记

时间:2011-02-04 13:53:52

标签: javascript innerhtml

<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>

我想清除所有标签,并获取盐文本,

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

我该怎么做?

4 个答案:

答案 0 :(得分: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 :(得分:2)

这是一种不同的方法 - 使用带有正则表达式的替换删除标记:

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

这是fiddle

答案 2 :(得分:1)

尝试:

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

答案 3 :(得分:0)

您可以遍历所有孩子并从中查看.innerText。然后,您可以轻松地连接每个孩子的文本,并获得没有标签的所有文本。