我想在同一个类中调用并修改我想要选择的元素

问题描述 投票:0回答:1

我不知道如何调用同一类中的单个或任何元素,例如 if div.innerHTML == null 那么背景将更改或生成任何代码。我唯一知道的是通过 ClassName 获取文档并通过 [0]、[1]、[2]、[3]、... 等调用元素。但是它生成了很多代码作为 div有很多。有没有什么代码可以让代码变得更短?

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Page title</title>
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
   <div class="box">Philippines</div>
   <div class="box">Singapore</div>
   <div class="box">null</div>
   <div class="box">Japan</div>
   <div class="box">null</div>
</body>
</html>

<style>
*{
margin: 0;
padding: 0;
}
body{
   display: flex;
   flex-direction: column;
   height: 100vh;
   width: 100%;
   justify-content: center;
   align-items: center;
}
div{
   width: 50%;
   background: blue;
   color: white;
   font-size: 22px;
   padding: 10px;
   border-radius: 8px;
   margin: 5px 0;
   text-align: center;
}
@media (min-width: 600px){
body{
   flex-direction: row;
   gap: 10px;
}
div{
   font-size: 30px;
   padding: 15px;
}
}
</style>

<script>
var a = document.getElementsByClassName("box");

if(a[0].innerHTML == "null"){
   a[0].style.background = "red";
}
if(a[1].innerHTML == "null"){
   a[1].style.background = "red";
}
if(a[2].innerHTML == "null"){
   a[2].style.background = "red";
}
if(a[3].innerHTML == "null"){
   a[3].style.background = "red";
}
if(a[4].innerHTML == "null"){
   a[4].style.background = "red";
}
</script>

上面的代码可以完美运行,但是有很多 Javascript 代码。如果我制作 20 div 会怎样?这样代码就可以像 div 一样扩展。

这样做的唯一问题是使代码更短。我用

for(let i = 0; box.length > i; i++){
if(box[i].innerHTML == "null"){
this.style.background = "red";
}

}

但是它不起作用......

javascript for-loop classname
1个回答
0
投票

你可以尝试一下吗

for(let i = 0; box.length > i; i++){
  if(box[i].innerHTML == "null"){
    box[i].style.background = "red";
  }
}

此处的用法不正确。

© www.soinside.com 2019 - 2024. All rights reserved.