我正在用 JavaScript 编写一些我需要使用的东西,querySelectorAll.style但它总是返回 undefined,但它与querySelector.style. 我怎样才能让它正常工作,以便我可以设置样式?
document.querySelector("div#tabs" + tabId + "> div.page").style.display = 'none'; //works
document.querySelectorAll("div#tabs" + tabId + "> div.page").style.display = 'none';// doesn't work
Run Code Online (Sandbox Code Playgroud)
返回文档中的第一个元素...
返回文档中元素的列表...
在第一个 IE 中,您操作的是单个元素,该元素确实具有style属性。第二个是元素列表,因此您需要应用样式遍历该列表:
var els = document.querySelectorAll("div#tabs" + tabId + "> div.page");
for (var x = 0; x < els.length; x++)
els[x].style.display = 'none';
Run Code Online (Sandbox Code Playgroud)
querySelectorAll返回元素列表而不是单个元素。
所以这应该可以将样式应用于找到的第一个元素:
document.querySelectorAll("div#tabs" + tabId + "> div.page")[0].style.display = 'none'; // First element
Run Code Online (Sandbox Code Playgroud)