获取循环中引用的childNode的水平偏移位置

时间:2013-08-26 21:09:58

标签: javascript parent children

使用纯JavaScript ,我试图在循环收集时获取给定childNode的偏移量。

我有一个容器,其中包含一系列文本childNodes:

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

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

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

}

我为此和任何其他偏移引用都未定义。

有人提出这个方法吗?

1 个答案:

答案 0 :(得分:1)

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

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

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