在使用js为页面动态生成table的时候,发现一个很奇怪的现象。
注意上面的table.innerHTML=''这行。如果是在Firefox或者Opera下运行都没有问题,但是在IE下,会导致table的内容最终被清空。按理说,这行代码在前面,给table添加内容的代码在后面,那么最后table应该是有内容的才对。可是在IE下,似乎这行代码反而在最后才执行,导致了table的内容被清空。如果把这行代码去掉,那么一切都正常了。
当然,写上这行代码并不是说这行代码是必须的,这里只是说说在IE下的这种奇怪情况。也许,这是IE的一个Bug?
function render(os){
var table = document.getElementById('cutomers');
var tbody = document.createElement('tbody');
table.appendChild(tbody);
table = tbody;
table.innerHTML = '';
var tr = createRow(null, ['ID', '名称', '光路', '纤序'], 0);
tr.className = 'SearchHeading';
table.appendChild(tr);
for(var i=0;i<os.length;i++){
tr = createRow(os[i], ['ID', 'NAME', 'OPTICNAME', 'FIBERNO'], i);
table.appendChild(tr);
}
}
注意上面的table.innerHTML=''这行。如果是在Firefox或者Opera下运行都没有问题,但是在IE下,会导致table的内容最终被清空。按理说,这行代码在前面,给table添加内容的代码在后面,那么最后table应该是有内容的才对。可是在IE下,似乎这行代码反而在最后才执行,导致了table的内容被清空。如果把这行代码去掉,那么一切都正常了。
当然,写上这行代码并不是说这行代码是必须的,这里只是说说在IE下的这种奇怪情况。也许,这是IE的一个Bug?