Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   Почему динамическая таблица создается без контента?.. (https://javascript.ru/forum/css-html-firefox-mizilla/30762-pochemu-dinamicheskaya-tablica-sozdaetsya-bez-kontenta.html)

deivan 14.08.2012 18:25

Почему динамическая таблица создается без контента?..
 
Добавляю в конец страницы табличку, содержимое которой динамически строится данными из массива.
Делаю так:

var newTableArray={ {1,2,3}, {4,5,6}, {7,8,9} };
		var newTableDOM=document.createElement('TABLE');
		var newRow,newCell;
		for(i=0;i<newTableArray.length;i++) {
			newRow=document.createElement('TR');
			for(j=0;j<newTableArray[i].length;j++) {
				newCell = (i==0) ? document.createElement('TH') : document.createElement('TD');
				newCell.innerText=newTableArray[i][j];
				newCell.className="t2";
				newRow.appendChild(newCell);
			}
		newTableDOM.appendChild(newRow);
		}
		document.body.appendChild(newTableDOM);


в хроме/опере таблица отображается вместе с содержимым, в фирефоксе - нет.
Почему так, и как побороть?..

oneguy 14.08.2012 19:13

Во-первых, в элементе <table> должен быть обязательно хотя бы 1 <tbody>, и <tr> не может быть непосредственно в <table>, только через <thead>, <tbody> или <tfoot>.
Во-вторых метод innerText не является стандартным, лучше использовать textContent (не для IE<9)

Aetae 14.08.2012 20:16

Цитата:

Во-первых
Всем браузерам это похрену.(кроме ie в частных случаях)
Цитата:

Во-вторых
А это верно. В FF только textContent.
Вообще рекомендую юзать либо innerHTML как кроссбраузерное(если лень пару строк написать лишних), либо .appendChild(document.createTextNode('text')) как полностью соответствующее идеологии DOM.

deivan 15.08.2012 14:28

Спасибо, други!
не знал, что иннерТекст такой коварный..


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