IE7下 JS画table需要写上tbody元素
今天遇到个问题,360浏览器页面请求回来的数据,JS画完不显示表格,chrome没问题360有问题,后来跟断点发现页面结构为:
很明显出问题了
html部分代码
<table border="0" cellspacing="0" cellpadding="0" class="zhlc_table" id="zhlc_table">
</table>
js部分
var txtContent = XmlParser(response.responseXML, {record: "txtContent"}); var fileContent=txtContent[0]; var tableEle=document.getElementById('zhlc_table'); for (var i = 0; i < fileContent.map.length; i++) { var trEle= document.createElement('tr'); var thEle = document.createElement('th'); thEle.innerHTML = fileContent.map[i].key; var tdEle = document.createElement('td'); var inputEle = document.createElement('span'); var lineContent = fileContent.map[i].value var lineContentArr = lineContent.split('*'); var lineRealContent =''; for(var j = 0; j < lineContentArr.length; j++) { lineRealContent += lineContentArr[j]; lineRealContent += '<br />' } inputEle.innerHTML=lineRealContent; tdEle.appendChild(inputEle); trEle.appendChild(thEle); trEle.appendChild(tdEle); tableEle.appendChild(eleTbody); }
从网上看看类似问题 貌似是IE7下默认会给个<tbody/> 标签但是画页面并没有写到table下
JS改进了下
var txtContent = XmlParser(response.responseXML, {record: "txtContent"}); var fileContent=txtContent[0]; var tableEle=document.getElementById('zhlc_table'); var eleTbody = document.createElement("TBODY"); for (var i = 0; i < fileContent.map.length; i++) { var trEle= document.createElement('tr'); var thEle = document.createElement('th'); thEle.innerHTML = fileContent.map[i].key; var tdEle = document.createElement('td'); var inputEle = document.createElement('span'); var lineContent = fileContent.map[i].value var lineContentArr = lineContent.split('*'); var lineRealContent =''; for(var j = 0; j < lineContentArr.length; j++) { lineRealContent += lineContentArr[j]; lineRealContent += '<br />' } inputEle.innerHTML=lineRealContent; tdEle.appendChild(inputEle); trEle.appendChild(thEle); trEle.appendChild(tdEle); eleTbody.appendChild(trEle); tableEle.appendChild(eleTbody); }
其实目测会出现问题但是实际解决了如图
去search了确切没有</tbody>结束部分 但是页面没问题了- - 好怪异