Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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 两种不同类型的节点列表?无法将一个节点列表上的属性设置为数组_Javascript_Arrays_Properties_Nodelist - Fatal编程技术网

Javascript 两种不同类型的节点列表?无法将一个节点列表上的属性设置为数组

Javascript 两种不同类型的节点列表?无法将一个节点列表上的属性设置为数组,javascript,arrays,properties,nodelist,Javascript,Arrays,Properties,Nodelist,这两个示例都是节点列表,但只有第一个有效 按预期工作: var apple = document.getElementById('apple'); var nodeList = document.getElementsByTagName('li'); // Line of concern var array = []; for(var i = 0; i < nodeList.length; i++) { array[i] = nodeList[i]; } for(var i =

这两个示例都是节点列表,但只有第一个有效

按预期工作:

var apple = document.getElementById('apple');
var nodeList = document.getElementsByTagName('li'); // Line of concern

var array = [];

for(var i = 0; i < nodeList.length; i++) {
  array[i] = nodeList[i];
}

for(var i = 0; i < array.length; i++) {
  array[i].style.display = 'none';
}
var apple=document.getElementById('apple');
var nodeList=document.getElementsByTagName('li');//关注点
var数组=[];
对于(变量i=0;i
不工作(错误为:“Uncaught TypeError:无法设置未定义的属性“display”):

var apple=document.getElementById('apple');
var nodeList=apple.parentNode.childNodes;//关注点
var数组=[];
对于(变量i=0;i
因此,如果两个变量“nodeList”都是实际的节点列表,那么为什么我不能在后一个示例中设置属性,或者设置任何类似的属性呢

另外,我如何解决后者的问题

对于这个问题,请不要提问


谢谢。

有两种不同类型的节点列表

apple.parentNode.childNodes
返回节点列表,但它包含所有节点——包括HTML元素之间的新行和空格字符。所以我不能应用我想要的属性的原因是因为一些节点是非元素的

然后,替代这个问题的答案是使用仅元素选择方法;在这种情况下:父元素子元素

apple.parentElement.children
有关更多节点方法的信息,请参见节点页面和左侧一栏。

签出
apple.parentElement.children