javascript - 为什么在 for 循环中设置高度的样式不起作用?
问题描述
当尝试在 for 循环中根据元素值给出高度时不起作用,与背景颜色相同。如果我通过数组接近该项目,它就不起作用。元素数据是一个数字。
code:
function chart(){
var divs = [a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12]
var a1 = document.getElementById("111").style.backgroundColor = "blue" ;
var a2 = document.getElementById("112").style.height = "500px";
var a3 = document.getElementById("113");
var a4 = document.getElementById("114");
var a5 = document.getElementById("115");
var a6 = document.getElementById("116");
var a7 = document.getElementById("117");
var a8 = document.getElementById("118");
var a9 = document.getElementById("119");
var a10 = document.getElementById("120");
var a11 = document.getElementById("121");
var a12 = document.getElementById("122");
var divs = [a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12]
htmlStr_min_chart = ""
for (let index = 0; index < average_min.length; index++) {
const element = average_min[index];
divs[index].style.height = element*10;
divs[index].style.backgroundColor = "blue"
}
}
chart();
谢谢
解决方案
试试下面这个函数,你的代码中有很多错误,比如:
- 未定义的变量
average_min
。 element
不能直接相乘,需要先获取元素的高度。- 您还必须在分配高度时添加“px”后缀。
- 以及
htmlStr_min_chart = "";
这句话有什么用。
function chart(){
var a1 = document.getElementById("111");
var a2 = document.getElementById("112");
var a3 = document.getElementById("113");
var a4 = document.getElementById("114");
var a5 = document.getElementById("115");
var a6 = document.getElementById("116");
var a7 = document.getElementById("117");
var a8 = document.getElementById("118");
var a9 = document.getElementById("119");
var a10 = document.getElementById("120");
var a11 = document.getElementById("121");
var a12 = document.getElementById("122");
a1.style.backgroundColor = "blue";
a2.style.height = "500px";
var divs = [a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12];
var average_min = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; // This is just an example of how you can use it.
htmlStr_min_chart = "";
for (let index = 0; index < average_min.length; index++) {
element = average_min[index];
old_height = (parseFloat(element) ? element : 1); // You use multiplication that's why I only use 1, otherwise if you use zero, any value will be zero.
divs[index].style.height = (old_height * 10) + "px"; // you have to set "px" to assign height.
divs[index].style.backgroundColor = "blue";
}
}
chart();
<style type="text/css">div{ margin-bottom: 5px; } </style>
<div id="111"></div>
<div id="112"></div>
<div id="113"></div>
<div id="114"></div>
<div id="115"></div>
<div id="116"></div>
<div id="117"></div>
<div id="118"></div>
<div id="119"></div>
<div id="120"></div>
<div id="121"></div>
<div id="122"></div>
推荐阅读
- java - 如何从 javafx 中的切换按钮获取文本
- html - 将 SVG 元素放在另一个元素上
- javascript - 在 JavaScript 中将时间“1hr 30m 4s”解析为提前时间
- android - React Native:来自多个域的 Axios 网络错误
- javascript - 如何使用 redux 从数据库中删除数据?
- entity-framework - 如何看到当前枚举器在实体框架中保持连接打开?
- python - 如何使用 subprocess.call 在 linux 中重新启动服务?
- message - 删除不和谐代码上的自己/个人聊天记录
- matlab - powf() 函数的奇怪行为
- python - 在 App Engine Python 中动态向 Google Datastore 实体添加属性(灵活的环境)