Javascript - 使用innerHTML替换html

时间:2013-03-25 15:19:30

标签: javascript innerhtml

我正在尝试使用innerHTML javascript替换html。

自:

aaaaaa/cat/bbbbbb

要:

<a href="http://www.google.com/cat/world">Helloworld</a>

这是我的代码

<html>
<head>
</head>
<body>
<p id="element1">aaaaaa/cat/bbbbbb</p>

<script language="javascript">
var strMessage1 = document.getElementById("element1") ;
strMessage1.innerHTML = strMessage1.innerHTML.replace( /aaaaaa./g,'<a href=\"http://www.google.com/') ;
strMessage1.innerHTML = strMessage1.innerHTML.replace( /.bbbbbb/g,'/world\">Helloworld</a>') ;
</script>
</body>
</html>

当我运行此代码时,它会消失Helloworld超链接。 我做错了什么。请帮忙。

感谢您的帮助。

2 个答案:

答案 0 :(得分:13)

您应该将replace()链接在一起,而不是分配结果并再次替换。

var strMessage1 = document.getElementById("element1") ;
strMessage1.innerHTML = strMessage1.innerHTML
                        .replace(/aaaaaa./g,'<a href=\"http://www.google.com/')
                        .replace(/.bbbbbb/g,'/world\">Helloworld</a>');

请参阅DEMO

答案 1 :(得分:2)

您正在替换起始标记,然后将其放回innerHTML,因此代码无效。在将代码放回元素之前进行所有替换:

var html = strMessage1.innerHTML;
html = html.replace( /aaaaaa./g,'<a href=\"http://www.google.com/');
html = html.replace( /.bbbbbb/g,'/world\">Helloworld</a>');
strMessage1.innerHTML = html;