Ключевое проектирование баз данных и программирующие ошибки, сделанные разработчиками
Эгоистичное проектирование баз данных и использование. Разработчики часто рассматривают базу данных как свое персональное хранилище постоянного объекта, не рассматривая потребности других заинтересованных сторон в данных. Это также относится к архитекторам приложения. Плохое проектирование баз данных и целостность данных мешают третьим лицам, работающим с данными, и могут существенно увеличить затраты жизненного цикла системы. Создание отчетов и MIS имеет тенденцию быть бедным родственником в проектировании приложений и только сделанный машинально.
Злоупотребление денормализовало данные. Переусердствовавшие денормализованные данные и пытающийся поддержать это в рамках приложения являются рецептом для проблем целостности данных. Используйте денормализацию экономно. Желание добавить соединение к запросу не является оправданием за то, что денормализовали.
Испуганный из записи SQL. SQL не является аэрокосмическими исследованиями и на самом деле довольно хорош в выполнении его задания. Отображающиеся слои O/R довольно хороши в выполнении 95% запросов, которые просты и соответствуют хорошо той модели. Иногда SQL является лучшим способом сделать задание.
Догматичный 'Никакие Хранимые процедуры' политики. Независимо от того, верите ли Вы, хранимые процедуры являются злыми, этот вид догматического отношения не имеет никакого места на проекте программного обеспечения.
Не проектирование баз данных понимания. Нормализация является Вашим другом, и это не аэрокосмические исследования. Присоединение и кардинальность являются довольно простыми понятиями - если Вы вовлечены в разработку приложения базы данных нет действительно никакого оправдания за то, что не были поняты они.
Поскольку проблема в IE8, см. MSDN :
Свойство доступно для чтения / записи для всех объектов, кроме следующих, для которых оно только для чтения: COL, COLGROUP, FRAMESET, HEAD, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR .
(выделено мной)
Работа Колина (установка innerText
на td
вместо innerHTML
на tr
) в вашем случае будет хорошим вариантом. Если ваши потребности станут более сложными, вам придется прибегнуть к табличной объектной модели .
(курсив мой)
Обход Колина (установка innerText
в td
вместо innerHTML
на tr
) в вашем случае подойдет. Если ваши потребности станут более сложными, вам придется прибегнуть к табличной объектной модели .
(курсив мой)
Обход Колина (установка innerText
в td
вместо innerHTML
на tr
) в вашем случае подойдет. Если ваши потребности станут более сложными, вам придется прибегнуть к Табличной объектной модели .
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)
Я считаю, что 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
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.
Почему вы не просто обдумываете и не изменяете это конкретное значение?
Используйте это вместо:
document.getElementById('abc').innerText = 'ccc';
вместо
SPAN>