javascript设置样式宽度80%?

javascript设置样式宽度80%?,javascript,styles,percentage,Javascript,Styles,Percentage,我想将对象的宽度设置为80%。父div宽度为100% 怎么了 var howManyDivsIHave = document.querySelectorAll('#section div.divs').length; if(howManyDivsIHave == "1"){ var divs = document.getElementById("section").getElementsByClassName("divs"); divs.style.width = "80%";

我想将对象的宽度设置为80%。父div宽度为100%

怎么了

var howManyDivsIHave = document.querySelectorAll('#section div.divs').length;
if(howManyDivsIHave == "1"){
    var divs = document.getElementById("section").getElementsByClassName("divs");
    divs.style.width = "80%"; 
    divs.style.height = "80%";
    divs.style.margin = "10%";
}
else if (howManyDivsIHave == "2"){
    divs.style.width = "40%"; 
    divs.style.height = "40%";
    divs.style.margin-top = "30%";
    divs.style.margin-bottom = "30%";
    divs.style.margin-left = "5%";
    divs.style.margin-right = "5%"; 
}
else if (howManyDivsIHave == "3"){
    divs.style.width = "40%"; 
    divs.style.height = "40%";
    divs.style.margin = "5%";
}

}

更新:您仍然无法访问结果集的单个成员。您需要遍历
getElementsByClassName
的结果,因为您仍在尝试对结果集合而不是单个结果设置样式属性。您还需要在调用
querySelectorAll
之后调用
getElementsByClassName
,否则当您到达
else if
块时,
divs
var将超出范围。您应该能够从原始答案中找出如何构造循环,因此我将不进行编辑:


childNodes
是一个数组。您需要遍历数组并在每个元素上设置样式。在您发布的代码中,您正在设置数组的样式,而不是单个DOM元素。试试像这样的东西

var divs = document.getElementById("section").childNodes;
for (var i = 0; i < divs.length; i++)
{
    divs[i].style.width = "80%"; 
    divs[i].style.height = "80%";
    divs[i].style.margin = "10%";
}
var divs=document.getElementById(“section”).childNodes;
对于(变量i=0;i

请注意,
childNodes
将包含id为“section”的DOM元素的所有子元素,因此,如果您不想将此样式应用于“section”DOM元素下的其他子元素,则需要进行进一步筛选。

childNodes是节点列表或数组。您需要迭代并将该样式添加到各个项目中:

for(i=0;i<divs.length;i++){
    divs[i].style.width = "80%";
    divs[i].style.height = "80%";
    divs[i].style.margin = "10%";
}

用于(i=0;我能不能通过css来实现这一点?因为它会根据我更新了多少i div的答案而变化。我不会再向T台解释这一点,因为这基本上是一个新问题,但你应该能够通过更新稍微想一想就知道。它不起作用….?未捕获类型错误:无法设置Unfi的属性“宽度”这将很难,因为这是一个非常大的项目…但是我可以给div一个类,而不是使用childNodes?你可以将问题代码分离并抽象成一个例子,说明手头的问题。这里的人们一直都在这样做。你会得到更高质量的答案;)