gpt4 book ai didi

javascript - 为什么不能按前向顺序删除样式?

转载 作者:行者123 更新时间:2023-11-30 12:59:03 24 4
gpt4 key购买 nike

我修改了下面 SO 帖子中的问题/答案以删除样式,按顺序。

问题/答案以相反的顺序删除脚本。

它没有用。但是,如果我将其改回倒序,一切都会奏效。

我的猜测是,如果您删除 style[0]style[1] 会立即更新为 style[0],在一个示例中 w/只有两种风格。因此循环会失败。

这是正确的吗?

样式数组在修改时是否几乎立即更新?

Reference Post

var scripts  = document.getElementsByTagName("script");
for (var i=scripts.length; i--; ){
(scripts[i]).parentNode.removeChild(scripts[i]);
}

最佳答案

你猜对了; getElementsByTagName 返回一个事件“数组”(实际上不是数组,而是一个NodeListHTMLCollection,取决于浏览器和版本)反射(reflect)对 DOM 的后续更新。

所以,你可以这样写:

var styles = document.getElementsByTagName("style");
while (styles.length) {
styles[0].parentNode.removeChild(styles[0]);
}

也就是说,没有理由偏爱这种方式。由于 JavaScript 在绘制 UI 的同一线程中运行,删除样式的结果在循环完成后才会生效,因此顺序对您来说无关紧要。

有用的 MDN 链接:

关于javascript - 为什么不能按前向顺序删除样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17949975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com