【问题标题】:Code Mysteriously Stops Working [closed]代码神秘地停止工作[关闭]
【发布时间】:2014-12-08 15:14:48
【问题描述】:

这段代码运行了大约一周(在此之前的时间也更长,但是从那以后我大大改进了内部功能)。阅读起来并不复杂,但由于某种原因,它昨天停止了工作。我没有对这部分代码进行任何更改,而是将这部分脚本分开到文件底部的它自己的脚本标记中,所有 HTML id 保持完全相同(这个巨大的表格排序在源文件,因此很容易避免)...还有其他人遇到过这样的事情吗?如果有人看到任何明显的东西,请告诉我...

window.addEventListener("load", function () {
      function Kill_Count(id,totalDeaths) {
        var deathsPerSecond = totalDeaths/365/24/60/60/4;
        var deaths = 0, result;
        var timer = 1;
        setInterval(function() {    
          deaths = deathsPerSecond*timer;     
          result = deaths.toFixed();
          document.getElementById(id).value = result;
          timer++;
        }, 250);
      }
      
      var killnum = "23199336 1501799 301275455 49877536490 2676365000 402611664 5018470 1375940758 564785251 635382008";
      killnum = killnum.split(" ");
      for (var i = 1; i <= 10; i++) {
        var num = i-1;
        var temp = killnum[num];
        Kill_Count('Kill_Count'+i,Number(temp));
      }
    });
    <table id="Killed" cellpadding="0" cellspacing="0" align="center">
            <tbody>
              <tr>
                <td>Buffalo</td>
                <td align="right">
                  <span id="Kill_Count1"></span>
                </td>
              </tr>
    
              <tr>
                <td>Camels</td>
                <td align="right">
                  <span id="Kill_Count2"></span>
                </td>
              </tr>
    
              <tr>
                <td>Cattle</td>
                <td align="right">
                  <span id="Kill_Count3"></span>
                </td>
              </tr>
    
              <tr>
                <td>Chickens</td>
                <td align="right">
                  <span id="Kill_Count4"></span>
                </td>
              </tr>
    
              <tr>
                <td>Ducks</td>
                <td align="right">
                  <span id="Kill_Count5"></span>
                </td>
              </tr>
    
              <tr>
                <td>Goats</td>
                <td align="right">
                  <span id="Kill_Count6"></span>
                </td>
              </tr>
    
              <tr>
                <td>Horses</td>
                <td align="right">
                  <span id="Kill_Count7"></span>
                </td>
              </tr>
    
              <tr>
                <td>Pigs</td>
                <td align="right">
                  <span id="Kill_Count8"></span>
                </td>
              </tr>
    
              <tr>
                <td>Sheep</td>
                <td align="right">
                  <span id="Kill_Count9"></span>
                </td>
              </tr>
    
              <tr>
                <td>Turkeys</td>
                <td align="right">
                  <span id="Kill_Count10"></span>
                </td>
              </tr>
    
            </tbody>
    </table>

【问题讨论】:

  • 尝试在此处重现您的问题jsbin.com
  • “它停止工作” 你能更具体一点吗?它不加载、不渲染或某些功能失败?
  • 您能解释一下您希望代码做什么以及“它停止工作”是什么意思吗?
  • “停止工作”的描述性不是很好。请描述观察到的行为和期望的行为以及调试控制台中显示的错误(如果有)。
  • 我希望代码每秒更新 4 次击杀计数(就像它连续数周所做的那样),以便提供实时视角。我的意思是当它停止工作时,没有任何东西被注入到表中,我只看到 HTML 中的动物名称。为什么我的问题被否决了?

标签: javascript html


【解决方案1】:

您可能需要在 setInterval 函数中将值更改为 innerHTML 或 innerText。

document.getElementById(id).innerHTML= result;

我不确定是什么改变了它。

http://jsfiddle.net/g2Lodf23/

【讨论】:

  • 谢谢,不知道我怎么没看到,顺便说一句,你知道innerHTML、innerText 和value 的规则吗?还是都是随意分配的?