javascript

时间:2018-08-22 12:02:55

标签: javascript

我是Java语言的新手,由于某种原因我不知道该如何解决!

我试图根据我从“段落标签”中获得的数字来改变圆圈的颜色。当我在页面上使用ID时,我设法使其正常工作。

(function() {
  var Antal = document.getElementById("myP").innerHTML;

  if (Antal >= 6) {
    document.getElementById("centerbox1").style.backgroundColor = 'Green';
  } else
  if (Antal >= 1 && Antal < 5) {
    document.getElementById("centerbox1").style.backgroundColor = 'yellow';
  } else
  if (Antal <= 0) {
    document.getElementById("centerbox1").style.backgroundColor = 'red';
  }
})();
<div id="centerbox1" style="width:90px; height:90px; border-radius:50%;">
  <div>
    <p id="myP">1</p>
  </div>
</div>

但是由于我需要它一次又一次地重复,所以我不能使用ID,而是想将代码切换为使用“类”。

如果我将所有ID都切换为类,则该代码将不再起作用。

(function() {
  var Antal = document.getElementsByClassName('myP').innerHTML;


  if (Antal >= 6) {
    document.getElementsByClassName('centerbox1').style.backgroundColor = 'Green';
  } else
  if (Antal >= 1 && Antal < 5) {
    document.getElementsByClassName("centerbox1").style.backgroundColor = 'yellow';
  } else
  if (Antal <= 0) {
    document.getElementByClassName("centerbox1").style.backgroundColor = 'red';
  }
});
<div class="centerbox1">
  <div>
    <p class="myP">1</p>
  </div>
</div>

现在,这可能是由于一些非常基本的问题所致,但是我希望有人可以为我提供帮助,因为我对此颇为棘手。

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以遍历中心框,然后在每个框中找到p标签。根据p标签,您可以为中心框着色。

HTML

<div class="centerbox">
  <div>
    <p>1</p>
  </div>
</div>
<div class="centerbox">
  <div>
    <p>3</p>
  </div>
</div>

CSS

.centerbox {
  width:90px; 
  height:90px; 
  border-radius:50%;
}

JS

let boxes = document.getElementsByClassName("centerbox")
for(let i = 0;i<boxes.length;i++){
  let box = boxes.item(i)
  let content = box.getElementsByTagName("p")[0].innerHTML
  let number = Number(content)
  if(number > 1) {
    box.style.backgroundColor = "green"
  }
}

您实际上并不需要匿名功能,但如果需要,您需要在末尾添加()使其自动执行

(function() {
  console.log("executing!");
})();

答案 1 :(得分:0)

这里的解决方案真的很简单。

请记住,在使用getElement s ByClassName时,JavaScript将返回一个数组,因为可以有多个类。解决方案是使用getElementsByClassName[0],因为这将专门返回数组中具有该类的第一个元素,显然,这也使您可以指定要对其应用哪个类。