Javascript – Înlocuiți html folosind innerHTML (Programare, Javascript, Innerhtml)

Dexter a intrebat.

Încerc să înlocuiesc html folosind javascript innerHTML.

De la:

aaaaaa/cat/bbbbbb

Către:

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

Acesta este codul meu

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

Când execut acest cod dispare hyperlinkul Helloworld.ce fac greșit. Vă rog să mă ajutați.

Vă mulțumesc pentru tot ajutorul.

2 răspunsuri
Antony

Ar trebui să înlănțuiți replace() împreună în loc să atribuiți rezultatul și să înlocuiți din nou.

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

Consultați DEMO.

Comentarii

  • Am făcut acest lucru, dar întrerupe restul paginii de oriunde este inserat. –  > Por M21.
  • @M21 HTML string replace este mai degrabă un exercițiu distractiv decât o soluție fiabilă. Dacă aveți o problemă ușor diferită, vă rugăm să puneți propria întrebare. Ilustrează cu un exemplu de ce nu funcționează în întrebarea ta, arată-ne ce ai încercat, și poți, de asemenea, să faci un link către această întrebare dacă vrei. –  > Por Antony.
Guffa

Înlocuiți eticheta de început și apoi o puneți la loc innerHTML, astfel încât codul va fi invalid. Efectuați toate înlocuirile înainte de a pune codul înapoi în element:

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;

Comentarii

  • La mine funcționează la fel de bine, dar strică restul paginii de oriunde este pus. –  > Por M21.