2013-03-25 16 views
6

Sto provando a sostituire html usando innerHTML javascript.Javascript - Sostituisci html usando innerHTML

Da:

aaaaaa/cat/bbbbbb 

A:

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

Questo è il mio codice

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

Quando ho eseguito questo codice scompare Helloworld collegamento ipertestuale. quello che sto facendo male. Per favore aiuto.

Grazie per tutto il vostro aiuto.

risposta

11

Si dovrebbe catena replace() insieme invece di assegnare il risultato e la sostituzione di nuovo.

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

Vedi DEMO.

2

Si sta sostituendo il tag di partenza e quindi lo si inserisce nuovamente in innerHTML, quindi il codice non sarà valido. Effettuare tutte le sostituzioni prima di mettere il codice di nuovo nell'elemento:

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; 
Problemi correlati