我有一个简单的 javascript 函数,可以将一行文本框分成多行。功能如下:
function newline(componentID)
{
var cols = document.getElementById(componentId).getElementsByTagName('td');
var colslen = cols.length;
var i = -1;
var tempInnerHTML = '<tbody><tr>';
while (++i < colslen)
{
tempInnerHTML += '<td>' + cols[i].innerHTML + '</td>'
if ( i == 9 || i == 19 || i==29 ) { tempInnerHTML += '</tr><tr>'; }
}
tempInnerHTML += '</tr></tbody>';
document.getElementById(componentId).InnerHTML = tempInnerHTML;
}
该功能在 FireFox 上运行良好,但在 IE 9.0 中无法运行 原因是document.getElementById(componentId).InnerHTML = tempInnerHTML;
我们无法在 IE 9.0 中直接设置 innerHTML
所以我尝试将上述功能更改为:
function newline(componentID)
{
var cols = document.getElementById(componentId).getElementsByTagName('td');
var colslen = cols.length;
var i = -1;
var tempInnerHTML = '<tbody><tr>';
while (++i < colslen)
{
tempInnerHTML += '<td>' + cols[i].innerHTML + '</td>'
if ( i == 9 || i == 19 || i==29 ) { tempInnerHTML += '</tr><tr>'; }
}
tempInnerHTML += '</tr></tbody>';
var div = document.createElement("div");
div.innerHTML = tempinnerHTML;
document.getElementById(componentId).appendChild(div.firstChild.tBodies[0]);
}
但是,上述功能不适用于 FireFox 以及 IE 9.0 问题在于声明
document.getElementById(componentId).appendChild(div.firstChild.tBodies[0]);
我需要让该功能同时在 FireFox 和 IE 9.0 上工作。
任何帮助将非常感激。
提前致谢!!