|
|
|
|
trl.innerHTML = body_ctrl.innerHTML.replace("+", "–");
body_ctrl.innerHTML = body_ctrl.innerHTML.replace("–", "+");
alert(body_ctrl.innerHTML); // остаётся минус
|
Спецсимвол – - дефис (длинное тире).
+ на - меняется на ура, т.е. символ –, записанный с помощью php, JS нормально читает (находит).
Но если сам JS запишет этот спецсимвол, то затем его уже не находит. По крайней мере, не находит фрагмент –
Если вместо спецсимвола подставить обычный символ, то никаких проблем не возникает.
Напрашивается вывод: JS понимает формулировку спецсимвола – , но записывает его в каком-то неизвестном никому, кроме него, формате (внутреннем представлении), посему после записи уже не может найти фрагмент –
Бред какой-то...
зы. В body_ctrl.innerHTML только один минус (–), либо один плюс. | |
|
|
|
|
|
|
|
для: Cyrax
(05.02.2009 в 09:42)
| | Это не бред - это давно известный факт.
Да, парсер браузера в свойстве innerHTML выдаёт СОБСТВЕННОЕ представление о том, что написано в HTML-коде. И иначе быть не может.
Запустите в браузере следующий код
<div id="abc"><SpAn StYlE = "CoLoR : ReD"> QWERTY </sPaN></div>
<script>alert (document.getElementById ('abc').innerHTML)</script>
| и сравните ПОСИМВОЛЬНО то, что написано непосредственно в коде, с тем, что выдаст вам alert.
PS. Если, как вы написали, у вас "в body_ctrl.innerHTML только один минус (–), либо один плюс", то использовать метод replace вовсе не нужно - просто записывайте
body_ctrl.innerHTML = '+';
или
body_ctrl.innerHTML = '–';
| а если нужно узнать, что там внутри, то сравнивайте с плюсом. | |
|
|
|