IEの下でclone Node(true)は一つTRを取って.cels[index]新聞'cels.[index].first Child'は空ですか?それとも対象ではありませんか?


下記のjsコードを教えてください.
'cels.first Child'は空か対象ではないです.

var templateRow = copiedTable.firstChild.lastChild;
var newRow = templateRow.cloneNode(true);
newRow.style.display = "block";
var refRow = copiedTable.firstChild.firstChild.nextSibling //insertBefore()    

///alert(newRow.cells[4])  //// “undefined”
newRow.cells[4].firstChild.value = curSrcRow.cells[4].firstChild.nodeValue;
            
///set curSrcRow's values to newRow
copyPloValues(newRow, curSrcRow);

///    
if(refRow) {
    copiedTable.firstChild.insertBefore(newRow, refRow);
} else {
    copiedTable.firstChild.appendChild(newRow);
}
IEの下でクローンされたテーブルのtrは、DOM treeがその一部に挿入されていない前に、そのセル[]が利用できないことがわかった.(In IE、
It turns out that the.cels[]accessor is only available after you apped the row into the DOM tree)
参照:
ローソン[]and.cell[]in IE when using clone Node():
http://jehiah.cz/a/rows-and-cells-in-ie-when-using-clonenode
A cloned(cloneNode)table row element()stops beeing a table row element in IE:
http://www.reingroot.nl/bugreports/js/javascript/cloneRowInIE.html
解決方法は上記のリンクのように、新しい行の挿入コード(insertBefore)/apendChild()と新しい行のセル[]コードブロックを取り替える順序:

var templateRow = copiedTable.firstChild.lastChild;
var newRow = templateRow.cloneNode(true);
newRow.style.display = "block";
var refRow = copiedTable.firstChild.firstChild.nextSibling //insertBefore()    
            
///set curSrcRow's values to newRow
copyPloValues(newRow, curSrcRow);

///    
if(refRow) {
    copiedTable.firstChild.insertBefore(newRow, refRow);
} else {
    copiedTable.firstChild.appendChild(newRow);
}

//alert(newRow.cells[4] + ' ' + newRow.cells[4].nodeName);  //// “[object] TD”
newRow.cells[4].firstChild.value = curSrcRow.cells[4].firstChild.nodeValue;