javascript - 我从 class.length 得到错误的长度
问题描述
我试图让 div 根据类中元素的数量出现,但是相反,我得到了构造函数中的参数数量。div 的创建已经在工作,但我只是没有得到正确数量的 div。
有谁知道如何获取班级中项目的长度,在这种情况下,我需要它是 4 个项目。
let toggleButton = document.getElementById('toggle-button-id')
let toggleStateSquare = false;
class Block {
constructor(title, description) {
this.title = title;
this.description = description;
}
}
var block1 = new Block('lieke', 'lorem ipsum dolor nogwattes');
var block2 = new Block('testjete', 'ldjfaoef aheoahf aflheaofhia afhoeahfoa ef aohfhoa');
var block3 = new Block('testte', 'ldjfaoef aheoahf aflheaofhia afhoeahfoa ef aohfhoa');
var block4 = new Block('rqed', 'lorem ipsum dofafdaffelor nogwattes');
console.log(Block.length)
createElements()
let elementsArray = document.querySelectorAll('.element')
setElementHeight()
function setElementHeight() {
elementHeight = document.getElementsByClassName("element")[0].clientWidth + 'px';
for (var i = 0; i < elementsArray.length; i++) {
elementsArray[i].style.height = elementHeight;
}
}
function createElements() {
for (var i = 0; i < Block.length; i++) {
console.log('test', i)
var block = document.createElement('div');
block.setAttribute('class', 'element');
block.setAttribute('id', `elementid${i+1}`);
document.getElementById('grid-container-id').appendChild(block);
console.log('block aangemaakt')
}
}
* {
padding: 0;
margin: 0;
box-sizing: border-box;
font-family: Helvetica, Arial, sans-serif;
}
.grid-container {
padding: 40px;
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
/* grid-auto-rows:220px; */
grid-gap: 40px;
}
.element {
background: #4287f5;
/* grid-column: span 2; */
cursor: pointer;
display: flex;
align-items: flex-end;
padding: 20px;
}
h2 {
color: white;
}
p {
color: white;
}
.toggle-button-class {
position: fixed;
bottom: 20px;
right: 20px;
height: 70px;
width: 70px;
border-radius: 50%;
background: white;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0px 0px 11px 0px rgba(0, 0, 0, 0.25);
font-size: 30px;
cursor: pointer;
}
@media only screen and (max-width: 600px) {
.grid-container {
grid-template-columns: 1fr 1fr;
}
}
@media only screen and (min-width: 1000px) {
.grid-container {
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<link href="style.css" rel="stylesheet">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<!-- import fontawesome -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>
<div id='grid-container-id' class="grid-container">
</div>
<div class='toggle-button-class' id='toggle-button-id'><i class="fa fa-th-large"></i></div>
<script src="main.js"></script>
</body>
</html>
解决方案
推荐阅读
- javascript - 使用 IterableDiffer 在 Angular 8 中获取数组大小更改
- python - 损失函数的选择
- react-native - 在 Mac 中调试 React Native IOS 版本(不是 EXPO,而是 react-native run-ios)
- node.js - 有没有可用于在 angular8 中集成 Amazon-chime-sdk-js 的步骤?
- json - 将 JSON 字符串序列化为 JSON 对象
- azure-devops - 如何在不使用 PATCH http 方法的情况下通过 API azure devops 更新现有的 wotkitem(功能)卡状态
- azure - 从 Azure 构建/发布管道访问 Azure Key Vault
- android - 如何在应用发明者平台中添加喷射器
- python - 在不损失精度的情况下将双精度从 C++ 转移到 python
- java - 出现错误原因:java.lang.ClassNotFoundException:org.springframework.core.ReactiveAdapterRegistry