1

使用纯 JavaScript,我试图在遍历集合时获取给定 childNode 的偏移量。

我有一个包含一系列文本子节点的容器:

var theChildren = document.getElementById( "parentContainer" ).childNodes,
    theChildrenLen = theChildren.length;

for( var i=0; i<theChildrenLen; i++ ) {

    console.log( theChildren[i].offsetLeft );

}

我对此和任何其他偏移量参考都未定义。

有人提出这个问题并找到了一种方法吗?

4

1 回答 1

2

简短的回答是每个孩子之间都有一个文本节点。如果你 console.log 'theChildrenLen' 变量,你会发现它不是你所期望的。为了过滤掉那些,你应该添加一个 if 语句,如下所示:

for( var i=0; i<theChildrenLen; i++ ) {
if (theChildren[i].nodeType !== 3)
   console.log( theChildren[i].offsetLeft );
}

这将跳过您通常会遇到的任何文本节点。

于 2013-08-26T21:16:49.160 回答