Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.09.2013, 03:20
Новичок на форуме
Отправить личное сообщение для Cruperman Посмотреть профиль Найти все сообщения от Cruperman
 
Регистрация: 23.09.2013
Сообщений: 6

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 во всем виноват.
Тогда как по другому?

Заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 29.09.2013, 03:48
Новичок на форуме
Отправить личное сообщение для Cruperman Посмотреть профиль Найти все сообщения от Cruperman
 
Регистрация: 23.09.2013
Сообщений: 6

Вопрос решен. Решил переписать с нуля и, как обычно, все заработало. Даже лучше на мой взгляд стало
Ответить с цитированием
  #3 (permalink)  
Старый 29.09.2013, 10:51
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Cruperman
когда result присваивается document.getElementById(par1).innerHTML, непонятно откуда в конце document.getElementById(par1).innerHTML появляется закрывающий тег </spec>
Его браузер сам подставляет...
Ответить с цитированием
  #4 (permalink)  
Старый 29.09.2013, 10:54
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Cruperman
либо innerHTML во всем виноват
Можешь конечно винить его...
Но главная проблема в твоем понимании его использования...

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
innerHTML....? Hapson Элементы интерфейса 4 24.07.2013 01:33
Проблема select innerHTML adamsalex AJAX и COMET 0 02.04.2012 11:46
Решение проблемы с отображением элементов на странице mozyr Javascript под браузер 17 13.01.2012 02:34
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37
ошибка с innerHTML Gekt0r Общие вопросы Javascript 15 21.08.2008 11:57