我有以下运行良好的示例JS。.
const mainContainer = document.getElementById('main-container');
const subContainers = mainContainer.querySelectorAll('.sub-container');
for (let i = 0; i < subContainers.length; i++) {
const subContainer = subContainers[i];
const subContainerStyle = window.getComputedStyle(subContainer);
const subContainerPadding = subContainerStyle.getPropertyValue('padding');
console.log(subContainerPadding);
}
我的IDE(在macOS 10.14.3上为PhpStorm 2018.2.6)抱怨说window.getComputedStyle()
需要一个Element对象
这是因为subContainer
是一个传入的节点,因为mainContainer.querySelectorAll()
返回一个NodeList,其中包含更多抽象的Node对象,而Element只是一种类型
nodeType
为Node.ELEMENT_NODE
的节点获取元素?更新
正如@lena在评论中指出的那样,将PhpStorm更新到最新版本(2018.3.4)删除了警告
正如@sergio在评论中指出的,querySelectorAll()
实际上返回一个NodeListOf<Element>
我想这个问题仍然代表着更普遍的情况!