在IE6-IE9不能TBODY innerHTML被分配,和再现的代码如下

JS代码






tbody的innerHTML在IE6-IE9不能复制错误




AAA



捷先


VaR tbody = document.getelementsbytagname('tbody){ 0 }
功能settbody(){
tbody.innerhtml = {BBB}
}
功能gettbody(){
警报(TBODY .innerHTML)
}
btn1.onclick =函数(){
gettbody()
}
btn2.onclick =函数(){
settbody()
}





两个按钮,得到的tbody innerHTML第一、第二套都innerHTML。

所有的浏览器都出现了TR的字符串时获得的,但ie6-9不支持设置是错误的,如图



您可以使用特征的判断看浏览器是否支持组都innerHTML


无功isupporttbodyinnerhtml =函数(){()
无功表= document.createelement(}})
VaR tbody = document.createelement('tbody)
table.appendchild(把)
真的
尝试{
tbody.innerhtml =
} catch(e){
嘘= false
}
返回嘘
(})
警报(isupporttbodyinnerhtml)


点击查看您的浏览器此时是否支持此博客。

点击我





下面的选择可以如果你想设置TBODY用于innerHTML在IE6-IE9

JS代码


功能settbodyinnerhtml(tbody,HTML){
var div = document.createelement('div)
div.innerhtml =+ HTML +
而(tbody. firstChild){
tbody.removechild(TBODY。第一个孩子)
}
tbody.appendchild(div.firstchild。第一个孩子)
}


使用DIV包含一个表,然后删除在把所有元素,并添加div来把第一个元素的第一个元素,即div >表> TR.

当然,还有一个更精简的版本,这是直接替代方法的作用

JS代码


功能settbodyinnerhtml(tbody,HTML){
var div = document.createelement('div)
div.innerhtml =+ HTML +
tbody.parentnode.replacechild(div.firstchild.firstchild,tbody)
}