2013-03-25 3 views
6

Я пытаюсь заменить html с помощью innerHTML javascript.Javascript - Замените html с помощью innerHTML

От:

aaaaaa/cat/bbbbbb 

To:

<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; 
Смежные вопросы