Autor Zpráva
SeparateSK
Profil
Dobry den, mám takýto script:
<script>
function odstranBR(){
    var novyText=document.getElementById("text").innerHTML.replace("<br>","");
    document.getElementById("text").innerHTML=novyText;
}

  </script>

  <div id="text" onclick="odstranBR()" style="font-family:verdana;background:#dddddd">
 Text <br>
 Fakt dlhy text<br>
 Este dlhsi text<br>
 ... to je toho textu<br>
</div>
Tento script by mal po kliknutí na šedé pozadie (div) vymazať všetky <br> v kóde v dive.
Lenže ono to nevymaže všetko - ono to vymazáva po jednom.
V mojich ostatnych scriptoch kde nenahrádzam innerHTML všetko funguje v poriadku.
V čom je chyba?
Chamurappi
Profil
Reaguji na SeparateSK:
1) V innerHTML nemusí být řetězec shodný s původním HTML kódem. Při načtení stránky (či obecně HTML fragmentu) se sestaví DOM a při zjišťování innerHTML se z DOMu zpětně sestaví HTML kód — podle toho, jak se prohlížeči zlíbí. Z <br> se může stát <BR>.
2) Metoda replace nahrazuje jen jeden výskyt, pokud je jejím prvním argumentem řetězec.

Použij regulární výraz, globální a nezávislý na velikosti písmen: innerHTML.replace(/<br>/gi, "").
SeparateSK
Profil
Ďakujem , teraz všetko funguje na 100%

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0