Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用数组外的childNodes初始化变量_Javascript_Arrays_Child Nodes - Fatal编程技术网

Javascript 使用数组外的childNodes初始化变量

Javascript 使用数组外的childNodes初始化变量,javascript,arrays,child-nodes,Javascript,Arrays,Child Nodes,有人能解释一下以下JavaScript语法的作用吗: var tagLink_ar = document.getElementsByTagName('td'); **var x = tagLink_ar.childNodes, i=0, j;** // Not sure ??? 这是来自一个旧的javascript函数,它不再在IE>9或FF中工作 tagLink_ar当然是TD标签的数组,但我以前没有见过一个包含索引元素I和j的变量,在我的在线研

有人能解释一下以下JavaScript语法的作用吗:

  var tagLink_ar = document.getElementsByTagName('td');  

  **var x = tagLink_ar.childNodes, i=0, j;**                 // Not sure ???
这是来自一个旧的javascript函数,它不再在IE>9或FF中工作

tagLink_ar当然是TD标签的数组,但我以前没有见过一个包含索引元素I和j的变量,在我的在线研究中也找不到类似的描述符。我是否只引用起始元素和长度

如何以类似的方式加载x

这是一个简单的x、i和j声明。但是得到一个TypeError:x是未定义的

以下是作为参考的功能:

var tagLink_ar = document.getElementsByTagName('td');  
**var x = tagLink_ar.childNodes, i=0, j;**                 // Not sure ???

while(j == x[i++]){                                             
  if(j.nodeType == 1 && nodeName == 'div'){                     
     var viewDiv = getStyle(divElement, 'display');
     if (viewDiv == 'block'){                                   
       x[j].style.borderBottom = "1px solid #000000";
     }
   }
}

注意到while上的语法错误,应该是j=x[i++],并且j.nodeName

没有合理的情况下x可以有childNodes属性。tagLink_ar是一个节点列表,该列表中的每个元素都有一个childNodes属性

还有一些其他的原因可以解释为什么该代码永远不会工作。你抄对了吗

为了获得代码设计的结果,您可以这样做,我提供了一些示例HTML,以便您可以将其作为代码段运行:

var tagLink_ar=document.getElementsByTagName'td', 子对象,i,j,节点,viewDiv; 对于i=0;i所讨论的语法只是初始化变量,尽管非常混乱

var x = tagLink_ar.childNodes, i=0, j;
相当于

var x = tagLink_ar.childNodes;
var i = 0;
var j = undefined;

这只是一个变量声明,声明了3个变量:x、i和j。这些代码毫无意义。tagLink_ar有索引,其中每个元素都有一个子节点。这段代码应该做什么?@AlexanderO'Mara right-节点列表对象上没有childNodes属性。@rfornal:不,一点也不。@rfornal不,没有。x设置为tagLink_ar的默认未定义属性。它不会在tagLink_ar上创建属性。