【问题标题】:simple javascript appendChild doesn't work简单的 javascript appendChild 不起作用
【发布时间】:2014-07-24 10:00:29
【问题描述】:

我是网络编程新手。我尝试使用 JavaScript 绘制表格行,但它不起作用,我不知道为什么。

这是代码

<div id="gameDiv"> </div>
<script type="text/javascript">
    public function drawGame(){ 
        var table = document.createElement('table');
        table.setAttribute('style','float:left');
        var startRow = table.insertRow(0);
        var c = 'A'
        for (j=0; j<8; j++) {
            var text = document.createTextNode(c++);
            var cell = startRow.insertCell(j);
            cell.appendChild(text);
        }
        document.getElementById("gameDiv").appendChild(table);
    }
    $(document).ready(function() {
        drawGame();
    };
</script>

【问题讨论】:

  • JavaScript 目前不使用访问修饰符,如 public,您可能会在其他语言中找到;在}; 之间缺少.ready() 的结束)'A' 这样的字符串值不支持递增,因为 c++ 正在尝试。
  • 在使用 JS 时始终打开浏览器控制台。
  • 变量c也是字符串,不能用++递增。
  • 谢谢大家,现在我有一个新问题。如何以递增的方式显示带有字母的行。类似于 A B C D F... 并通过循环动态执行
  • @user3503716 stackoverflow.com/questions/12504042 (另见我的回答;))

标签: javascript html web


【解决方案1】:

这应该消除 NaN(不是数字)的废话。

<script>
        function drawGame(){ 
        var table = document.createElement('table');
        table.setAttribute('style','float:left');
        var startRow = table.insertRow(0);
        var c = 'A'.charCodeAt()
        for(j=0; j<8; j++){
            var text = document.createTextNode(String.fromCharCode(c++));
            var cell = startRow.insertCell(j);

            cell.appendChild(text);

        }
    document.getElementById("gameDiv").appendChild(table);

    }

    $(document).ready(function() {
    drawGame();

    });
</script>

【讨论】:

    【解决方案2】:

    这是一种工作变体http://jsbin.com/hisewamu/4/edit,“$”概念是您应该包含的 jquery 的一部分

    【讨论】:

      【解决方案3】:

      好吧,你得到一个错误是因为我认为你可能混淆了你的语言,没有必要在 javascript 中将函数声明为 public,它会给你一个错误。

      drawGame 函数可以是:

          function drawGame(){ 
              var table = document.createElement('table');
              table.setAttribute('style','float:left');
              var startRow = table.insertRow(0);
              var c = 'A'
              for(j=0; j<8; j++){
                  var text = document.createTextNode(c++);
                  var cell = startRow.insertCell(j);
      
                  cell.appendChild(text);
      
              }
      }
      

      【讨论】:

      • 你错过了一个结束}
      【解决方案4】:

      问题在于您使用public。 Javascript 没有publicprivate,所以把它放在你的函数声明前面会导致错误。如果您打开控制台,您会看到如下错误:

      SyntaxError: Unexpected token function
      

      因此,要解决此问题,只需从代码中删除 private 修饰符即可。

      此外,您的代码末尾似乎缺少右括号。相反,你应该使用这个:

      $(document).ready(function() {
          drawGame();
      });
      

      但该代码也可以写得更短:

      $(drawGame);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-28
        • 2018-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-05
        相关资源
        最近更新 更多