Почему document.getElementById ('tableId') .innerHTML не работающий в IE8?

Ключевое проектирование баз данных и программирующие ошибки, сделанные разработчиками

  • Эгоистичное проектирование баз данных и использование. Разработчики часто рассматривают базу данных как свое персональное хранилище постоянного объекта, не рассматривая потребности других заинтересованных сторон в данных. Это также относится к архитекторам приложения. Плохое проектирование баз данных и целостность данных мешают третьим лицам, работающим с данными, и могут существенно увеличить затраты жизненного цикла системы. Создание отчетов и MIS имеет тенденцию быть бедным родственником в проектировании приложений и только сделанный машинально.

  • Злоупотребление денормализовало данные. Переусердствовавшие денормализованные данные и пытающийся поддержать это в рамках приложения являются рецептом для проблем целостности данных. Используйте денормализацию экономно. Желание добавить соединение к запросу не является оправданием за то, что денормализовали.

  • Испуганный из записи SQL. SQL не является аэрокосмическими исследованиями и на самом деле довольно хорош в выполнении его задания. Отображающиеся слои O/R довольно хороши в выполнении 95% запросов, которые просты и соответствуют хорошо той модели. Иногда SQL является лучшим способом сделать задание.

  • Догматичный 'Никакие Хранимые процедуры' политики. Независимо от того, верите ли Вы, хранимые процедуры являются злыми, этот вид догматического отношения не имеет никакого места на проекте программного обеспечения.

  • Не проектирование баз данных понимания. Нормализация является Вашим другом, и это не аэрокосмические исследования. Присоединение и кардинальность являются довольно простыми понятиями - если Вы вовлечены в разработку приложения базы данных нет действительно никакого оправдания за то, что не были поняты они.

24
задан Jin Yong 28 August 2009 в 01:03
поделиться

6 ответов

Поскольку проблема в IE8, см. MSDN :

Свойство доступно для чтения / записи для всех объектов, кроме следующих, для которых оно только для чтения: COL, COLGROUP, FRAMESET, HEAD, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR .

(выделено мной)

Работа Колина (установка innerText на td вместо innerHTML на tr ) в вашем случае будет хорошим вариантом. Если ваши потребности станут более сложными, вам придется прибегнуть к табличной объектной модели .

TITLE, TR .

(курсив мой)

Обход Колина (установка innerText в td вместо innerHTML на tr ) в вашем случае подойдет. Если ваши потребности станут более сложными, вам придется прибегнуть к табличной объектной модели .

TITLE, TR .

(курсив мой)

Обход Колина (установка innerText в td вместо innerHTML на tr ) в вашем случае подойдет. Если ваши потребности станут более сложными, вам придется прибегнуть к Табличной объектной модели .

33
ответ дан 28 November 2019 в 23:15
поделиться

Since TR's innerHTML is read-only as a few people have said, you are better off changing your markup to target the TD:

<table><tr><td id="changeme"> ... </td></tr></table>

Then you can set the content of the TD as you wish via innerHTML, and change other properties by setting them on the DOM node:

var td = document.getElementById("changeme");
td.innerHTML = "New Content";
td.cssText = "color: red";
td.className = "highlighted";

You get the idea...

This saves you the overhead of destroying and creating an extra DOM element (the TD)

5
ответ дан 28 November 2019 в 23:15
поделиться

Я считаю, что IE ведет себя странно когда вы играете с innerHTML элементов tr . Я бы выбрал строку с помощью getElementById , а затем выделил бы td и изменил его innerHTML:

document.getElementById('abc').firstChild.innerHTML = 'abc';

(хотя вы должны быть осторожны с этим: часто пробелы между tr и td будут считаться допустимый узел)

Там целая куча специальных функций для работы с таблицами в DOM

var tblBody = document.getElementById(tblId).tBodies[0];
var newRow = tblBody.insertRow(-1);
var newCell0 = newRow.insertCell(0);

См. все функции здесь: http://www.mredkj.com/tutorials/tablebasics1. html

2
ответ дан 28 November 2019 в 23:15
поделиться

innerHTML доступен только для чтения, как указано здесь: http://msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx

Свойство доступно для чтения и записи для всех объектов, кроме следующих, для которых оно доступно для чтения: только: COL, COLGROUP, FRAMESET, HEAD, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR.

Почему вы не просто обдумываете и не изменяете это конкретное значение?

2
ответ дан 28 November 2019 в 23:15
поделиться

Используйте это вместо:

document.getElementById('abc').innerText = 'ccc';
1
ответ дан 28 November 2019 в 23:15
поделиться