В IE вы должны добавлять строки таблицы в тело, а не напрямую в таблицу. Кроме того, в некоторых браузерах первым дочерним элементом div будет текстовый узел, если между разметкой DIV и TABLE есть какой-либо пробел. Так что либо переместите идентификатор в таблицу (или элемент tbody), либо используйте:
function initialize() {
var div = document.getElementById("search");
var tbody = div.getElementsByTagName('tbody')[0];
// create rows, cells, etc.
tbody.appendChild(line);
}
Обратите внимание, что все таблицы со строками будут иметь элемент tbody, даже если теги являются необязательными в разметке (т. Е. Ваша разметка не имеет элемента tbody, но таблица в DOM будет иметь его).
В MDN есть руководство по использованию методов таблицы DOM: https://developer.mozilla.org/en/Gecko_DOM_Reference/Examples#Example_8:_Using_the_DOM_Table_Interface.