javascript函数中的所有语句都没有被执行

时间:2016-10-10 11:39:07

标签: javascript html css function

在以下功能中:

function EVOLVE1()
{
  if(ATP>=evolveCost)
  {
  display('Your cell now has the ability to divide.');
  display('Each new cell provides more ATP per respiration.');
  ATP = ATP - evolveCost;
  document.getElementById('cellscount').innerHTML = "Cells = " +cells;
  document.getElementsById('ATPcount').innerHTML = "ATP + " +ATP;
  document.getElementById('dividebtn').style.display = "inline";
  document.getElementById('dividebtn').innerHTML = "Divide(" + divideCost + " ATP)";
   }
  else
  {
    display('Not enough ATP.');
  }
}

执行时,只执行前4个语句。最后3行没有任何效果(即,带有显示的按钮:无法显示,段落不会更改,按钮中的文本也不会更改)。我不知道为什么会这样。另外,display()是一个简单的函数,它可以改变div中的p:

function display(x)
{
  var z = document.getElementById('centretext').innerHTML;
  document.getElementById('centretext').innerHTML = z + "<br>" +  x;
}

所以我认为这不会导致问题。 HTML:

<div id="left" class = "format">
        <button class="buttonformat" id = "respirebtn" onclick="respire()"> Respire </button>
        <button class="buttonformat" id = "evolvebtn" onclick="EVOLVE1()"></button>
        <button class="buttonformat" id = "dividebtn" onclick="divide()"></button>
        <p id = "lefttext">
        </p>
      </div>

CSS:

#evolvebtn
{
  display: none;
  position: relative;
  top:450px;
  left:5px;
}

#dividebtn
{
  display: none;
  position: relative;
  left:5px;
  top:-30px;
}

1 个答案:

答案 0 :(得分:5)

document.getElementsById不是一个功能。该代码抛出异常(应该在您的控制台中可见),然后停止。

函数中没有s因为它返回单个元素(因为ID在文档中必须是唯一的)。