querySelectorAll:操作节点
据我了解,querySelector
返回一个真正的可更改元素,而 querySelectorAll
返回一个非活动静态节点集。
我想调整适合特定选择器的所有元素的样式。它适用于使用 querySelector
的第一个元素,但不适用于使用 querySelectorAll
的所有匹配元素。我猜这是因为节点集是非活动的。
有解决方法吗?或者我错过了什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这也将起作用..
this will also work..
如querySelectorAll:操作节点中所述,但有一种使其工作的方法,因为< code>forEach 仅适用于数组,不适用于 NodeList:
As described in querySelectorAll: manipulating nodes but with a way to make it work, since
forEach
only works on Arrays, not on NodeLists:问题是
querySelector
返回单个节点。querySelectorAll
返回一组节点(活跃度意味着如果更新集合中的元素,它们不会被删除)。您需要为每个匹配的元素设置样式,可能使用循环 - 您不能只为所有元素设置一次属性。所以,你可能需要做这样的事情:
The problem is that
querySelector
returns a single node.querySelectorAll
returns a set of nodes (the live-ness means the elements in the set won't be removed if you update them). You need to set a style on each of the elements matched, probably with a loop -- you can't just set a property once for all of them.So, you probably need to do something like this: