Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.03.2009, 13:01
Аспирант
Отправить личное сообщение для konstantinopol Посмотреть профиль Найти все сообщения от konstantinopol
 
Регистрация: 11.03.2009
Сообщений: 83

Правильно ли я удоляю таблицу???
Создание:
...
if(tablekopf==0){
				newElem=document.createElement('table');
				newElem.setAttribute('width','100%');
				newElem.setAttribute('border','1');
				newElem.setAttribute('class','sorttable');
				newElem.setAttribute('id','unique_id');
				newElem.setAttribute('cellpadding','4');
				//newElem.setAttribute('cellspacing','5');	
				newRow=newElem.insertRow(0); 
				newRow.setAttribute('bgcolor','#BDBDBD');
				newCell = newRow.insertCell(0);
				newCell.setAttribute('align','center');
				newCell.innerHTML="Entf"; 
				
				newCell = newRow.insertCell(1);
				newCell.innerHTML="Name"; 
			
				newCell = newRow.insertCell(2); 
				newCell.setAttribute('align','center');
				newCell.innerHTML="PLZ"; 
						
				newCell = newRow.insertCell(3); 
				newCell.setAttribute('align','center');
				newCell.innerHTML="Ort";
						
				tablekopf=1;		
			}
...
for(u=0;u < count3;u++)	{
				newRow=newElem.insertRow(u+1);
				
				newCell = newRow.insertCell(0); 
				newCell.setAttribute('align','center');
				newCell.innerHTML=array[u][0]+" km";
				 
				newCell = newRow.insertCell(1);  
				newCell.innerHTML="<a href=\"index.php?option=com_comprofiler&task=userProfile&user="+id[count2]+"\">"+array[u][1]+"</a>"; 
			
				newCell = newRow.insertCell(2); 
				newCell.setAttribute('align','center');
				newCell.innerHTML=array[u][2]; 
							
				newCell = newRow.insertCell(3); 
				newCell.setAttribute('align','center');
				newCell.innerHTML=array[u][3];
			}
		document.getElementById('tablica').appendChild(newElem);
		table = 1;
		tablekopf = 0;


Я получаю ошибку
uncaught exception: [Exception... "Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMHTMLDivElement.appendChild]" nsresult: "0x80004003 (NS_ERROR_INVALID_POINTER)" location: "JS frame :: http://localhost/Golfclub/map/mapBackUp5.php :: addClubToMap :: line 292" data: no]
в строке
document.getElementById('tablica').appendChild(newElem);


Это проблема в таблице или я где то в другом месте накосячил??
Ответить с цитированием
  #2 (permalink)  
Старый 23.03.2009, 15:39
Профессор
Отправить личное сообщение для AzriMan Посмотреть профиль Найти все сообщения от AzriMan
 
Регистрация: 27.02.2009
Сообщений: 215

немного не понятно.

1. Вы удААААААляете таблицу или создаете?

2. ошибка ссылается на php файл, а представлен листинг чистого JS.

3. а существует ли элемент с ID=='tablica' на момент выполнения метода appendChild?
Ответить с цитированием
  #3 (permalink)  
Старый 23.03.2009, 15:48
Аспирант
Отправить личное сообщение для konstantinopol Посмотреть профиль Найти все сообщения от konstantinopol
 
Регистрация: 11.03.2009
Сообщений: 83

Пардон я её создаю. Запарился уже с этим кодом.
Мне выдало ошибку именно этой строки.
<div id="tablica"></div> уже существуэт на момент создания таблицы.
Что за ошибка я немогу понять поэтому и спрашиваю по какой причине она появилась.
Я думал что из-за таблицы но раз вы говорите что это ошибка в php то значит что таблица создаётся верно.
Ответить с цитированием
  #4 (permalink)  
Старый 23.03.2009, 15:51
Профессор
Отправить личное сообщение для AzriMan Посмотреть профиль Найти все сообщения от AzriMan
 
Регистрация: 27.02.2009
Сообщений: 215

я говорю о том, что, если у меня появляется ошибка вида
Цитата:
uncaught exception: [Exception... "Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMHTMLDivElement.appendChild]" nsresult: "0x80004003 (NS_ERROR_INVALID_POINTER)" location: "JS frame :: http://localhost/Golfclub/map/mapBackUp5.php :: addClubToMap :: line 292" data: no]
, то я смотрю, что находится в 292 строчке в файле mapBackUp5.php.

или Вы хотите сказать, что в 292 строчке php файла находится
document.getElementById('tablica').appendChild(newElem);
?!
Ответить с цитированием
  #5 (permalink)  
Старый 23.03.2009, 15:58
Аспирант
Отправить личное сообщение для konstantinopol Посмотреть профиль Найти все сообщения от konstantinopol
 
Регистрация: 11.03.2009
Сообщений: 83

Именно так и есть.
В строке 292 стоит
document.getElementById('tablica').appendChild(newElem);

Я просматриваю страницу с FireFox и он мне это показывает.
Или вы предлогаете посмотреть в самом файле?
Ответить с цитированием
  #6 (permalink)  
Старый 23.03.2009, 18:49
Профессор
Отправить личное сообщение для AzriMan Посмотреть профиль Найти все сообщения от AzriMan
 
Регистрация: 27.02.2009
Сообщений: 215

ах Вы об этом.. да, действительно. но учтите, что если страница динамически видоизменяется, то не факт, что в 292 строчке будет именно то, что Вам необходимо. браузер (если Вы смотрите через view source) покажет Вам содержание таблицы на момент загрузки. а изменения с контентом там не будут отображены (поправьте меня, если я не прав)

хотя, если верить ошибке, она возникает как раз при обращении к методу appendChild.

вопросы:
1. appendChild выполняется только один раз?
2. что находится в newElem на момент выполнения?

кстати. подобная ошибка уже встречалась на этом форуме:
insertBefore выдаёт ошибку и не работает на опере и фоксе
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить таблицу созданную в JS? konstantinopol Общие вопросы Javascript 9 10.09.2011 10:55
Ввод данных в таблицу pwrmind Общие вопросы Javascript 2 06.03.2009 19:17
Как правильно оформить Send() Алекс97 AJAX и COMET 20 30.10.2008 19:19
перенос данных в динамическую таблицу Елена Общие вопросы Javascript 0 28.10.2008 15:53
Выбор рандомом таблицу css AlexMak Events/DOM/Window 8 16.10.2008 14:08