0

我在我的 javascript 函数中使用以下 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。有谁知道为什么在chrome中会发生这种情况?

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 回答