0

私は、JavaScript関数の1つで次のforループを使用して、アプリケーションにデータ行を作成しています。

for (var j = 0, length = contentsArray.length; j < length; j++) {
      //get the control for the node at this index
      contentControl = contentControlDef.getControlForObjectAtContainerIndex(contentsArray[j], j);
      //repopulate node; call overwriteDomNode(instanceDom, contentsArray, index);
          contentControl.overwriteDomNode(contentsDom.childNodes[j], contentsArray, j);
    }

この場合、はIEとFFの両方contentsDom.childNodesの配列です。[object HtmlDivElements]しかし、Chromeではそれは異なります。配列には同じ量の要素があります。しかし、それは次々と両方[object text]を持っています。[object HtmlDivElement]すべてのHtmlDivElementsが必要です。なぜこれがクロームで起こっているのか誰かが知っていますか?

4

1 に答える 1

2

コードを次のように変更します。

for (var j = 0, length = contentsArray.length; j < length; j++) {
  //get the control for the node at this index
  contentControl = contentControlDef.getControlForObjectAtContainerIndex(contentsArray[j], j);
  //repopulate node; call overwriteDomNode(instanceDom, contentsArray, index);
  contentControl.overwriteDomNode(contentsDom.children[j], contentsArray, j);
}

childNodesテキストノードも返します。childrenテキストノードが必要ない場合に使用します。

于 2013-01-21T13:11:48.170 に答える