テキストボックスの行を複数の行に分割する単純な 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]);
}
ただし、上記の機能は IE 9.0 と同様に FireFox では機能しません。
document.getElementById(componentId).appendChild(div.firstChild.tBodies[0]);
FireFox と IE 9.0 の両方で機能するようにする必要があります。
どんな助けでも大歓迎です。
前もって感謝します!!