2013-03-25 41 views
6

Tôi đang cố gắng thay thế html bằng cách sử dụng javascript innerHTML.Javascript - Thay thế html bằng cách sử dụng innerHTML

Từ:

aaaaaa/cat/bbbbbb 

Để:

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

Đây là mã của tôi

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

Khi tôi chạy mã này nó biến mất HelloWorld siêu liên kết. những gì tôi đang làm sai. Hãy giúp tôi.

Cảm ơn tất cả sự giúp đỡ của bạn.

Trả lời

11

Bạn nên thay thế() cùng nhau thay vì gán kết quả và thay thế lại.

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

Xem DEMO.

2

Bạn đang thay thế thẻ bắt đầu và sau đó đặt lại thẻ đó vào innerHTML, vì vậy mã sẽ không hợp lệ. Thực hiện tất cả các thay thế trước khi bạn đặt lại mã trong phần tử:

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; 
Các vấn đề liên quan