2013-03-25 17 views
6

Ich versuche HTML mit innerHTML Javascript zu ersetzen.Javascript - Ersetzen Sie HTML mit innerHTML

Von:

aaaaaa/cat/bbbbbb 

An:

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

Dies ist mein Code

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

Wenn ich diesen Code ausführen verschwindet es Helloworld Hyperlink. was ich falsch mache. Bitte helfen Sie.

Vielen Dank für Ihre Hilfe.

Antwort

11

Sie sollten Kette der replace() zusammen, anstatt das Ergebnis der Zuweisung und Ersetzung wieder.

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

Siehe DEMO.

2

Sie ersetzen das Start-Tag und setzen es dann wieder in innerHTML, so dass der Code ungültig wird. Machen Sie alle Ersetzungen, bevor Sie den Code zurück in das Element setzen:

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; 
Verwandte Themen