Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   innerHTML - проблемы (https://javascript.ru/forum/misc/41779-innerhtml-problemy.html)

Cruperman 29.09.2013 03:20

innerHTML - проблемы
 
Доброго времени суток!
Возникла такая неприятная ситуация. Даже две...
Начну с менее непонятной.
Есть такой код:
var string, string1, string2, string3, result; // par1, p1i - объявлялись ранее.
	string = document.getElementById(par1).innerHTML; 
	string1 = document.getElementById(par1).innerHTML.substring(0,p1i);
	string2 = '<spec>';
	string3 = document.getElementById(par1).innerHTML.substring(p1i);
	result = string1 + string2 + string3;
	document.getElementById(par1).innerHTML = result; // Переприсваиваем параграф начала

Так подробно расписывал для себя, чтобы понять в чем проблема. Но как-то неудачно...
Так вот, когда result присваивается document.getElementById(par1).innerHTML, непонятно откуда в конце document.getElementById(par1).innerHTML появляется закрывающий тег </spec>.

Это первая проблема. Теперь вторая.
Так же есть код. Следует сразу после предыдущего:
string = document.getElementById(par2).innerHTML;
	string1 = document.getElementById(par2).innerHTML.substring(0,p2i);
	string2 = '</spec>';
	string3 = document.getElementById(par2).innerHTML.substring(p2i);
	result = string1 + string2 + string3;
	document.getElementById(par2).innerHTML = result; // Переприсваиваем параграф конца

Здесь вообще непонятная ситуация. Когда result присваивается document.getElementById(par1).innerHTML, </spec> куда-то пропадает. Т.е. в result он был, а document.getElementById(par1).innerHTML его нет...
Либо я с ума сошел, либо innerHTML во всем виноват.
Тогда как по другому?

Заранее спасибо.

Cruperman 29.09.2013 03:48

Вопрос решен. Решил переписать с нуля и, как обычно, все заработало. Даже лучше на мой взгляд стало ;)

ksa 29.09.2013 10:51

Цитата:

Сообщение от Cruperman
когда result присваивается document.getElementById(par1).innerHTML, непонятно откуда в конце document.getElementById(par1).innerHTML появляется закрывающий тег </spec>

Его браузер сам подставляет...

ksa 29.09.2013 10:54

Цитата:

Сообщение от Cruperman
либо innerHTML во всем виноват

Можешь конечно винить его... :D
Но главная проблема в твоем понимании его использования... ;)

В innerHTML нужно пихать полностью валидный хтмл...
В противном случае будет вот такая вот ерунда. :)


Часовой пояс GMT +3, время: 21:17.