2013-03-25 88 views
6

我試圖用innerHTML javascript替換html。Javascript - 使用innerHTML替換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超鏈接。 我做錯了什麼。請幫忙。

謝謝你的一切幫助。

回答

11

你應該鏈的替換()在一起而不是分配結果,並再次更換的。

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

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;