Javascript Does remove()从由';querySelectorAll';?
我是编程新手,很难理解Javascript中的以下内容: 我的代码:Javascript Does remove()从由';querySelectorAll';?,javascript,Javascript,我是编程新手,很难理解Javascript中的以下内容: 我的代码: let nodeList = document.getElementById('ID').querySelectorAll('img'); for (i=0; i < nodeList.length; i++) { nodeList[i].remove(); } let nodeList=document.getElementById('ID').querySelectorAll('im
let nodeList = document.getElementById('ID').querySelectorAll('img');
for (i=0; i < nodeList.length; i++) {
nodeList[i].remove();
}
let nodeList=document.getElementById('ID').querySelectorAll('img');
对于(i=0;i
这段代码将从我的HTML中删除所有引用的“img”元素,但不会从我的“nodeList”中删除任何元素
为什么remove()只从HTML中删除而不删除“nodeList”元素?有没有办法从显示中删除元素&从nodeList中删除
谢谢这是因为
querySelectorAll()
返回元素的静态列表。这意味着列表将保留对元素的引用,即使它已被删除。它在被分配后不会改变
文档方法querySelectorAll()
返回一个静态(非活动)节点列表,表示与指定选择器组匹配的文档元素列表
另一方面,如果您想要实时收集,可以使用document.getElementsByTagName()
,document.getElementsByClassName()
等
constdivs=document.getElementsByTagName('div');
divs[1]。删除();
console.log(divs)
嘿
H
B
从DOM上存在的节点获取节点列表。
然后将其从DOM中删除。如果您现在运行相同的查询,您将得到一个没有这些节点的新列表。
正如这里所解释的,您不能直接从NodeList中删除元素 您正在使用的函数-
remove()
正在使用DOM,并直接从中删除元素。
如果还想从nodeList数组中删除,则需要使用
func
最终的代码看起来像-
let nodeList = document.getElementById('ID').querySelectorAll('img');
for (i=0; i < nodeList.length; i++) {
nodeList[i].remove();
nodeList.splice(i,1)
}
let nodeList=document.getElementById('ID').querySelectorAll('img');
对于(i=0;i
没有拼接方法。您必须首先将其转换为数组。