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