繁体   English   中英

Javascript不会触发

[英]Javascript does not fire

我下面有一些javascript代码的2个版本。

在版本1中,当我调用addNewCell(tableID)函数时,我能够触发行alert("bingo")

在版本2中,我添加了更多代码。 现在,行alert("bingo")不会触发。 是什么赋予了? 我检查了一下,括号就平衡了。

版本1

var counter = 1;
var limit = 100;


function isEven(value) {
    value = Number(value);
    if (value%2 == 0)
        return true;
    else
        return false;
}


function addNewCell(tableID){
     if (counter == limit)  {
          alert("You have reached the limit of adding inputs");
     }
     else {
          alert("bingo");

    counter++;

        }
}

版本2

var counter = 1;
    var limit = 100;


    function isEven(value) {
            value = Number(value);
        if (value%2 == 0)
            return true;
        else
            return false;
    }


    function addNewCell(tableID){
         if (counter == limit)  {
              alert("You have reached the limit of adding inputs");
         }
         else {
              alert("bingo");





            var table = document.getElementById(tableID);
            var rowCount = table.rows.length;

            var lastRow = table.rows[rowCount-1];

            var lastRowCellsCount = lastRow.getElementsByTagName('td').length;
            // alternative var lastRowCellsCount = lastRow.cells.length;


           if isEven(lastRowCellsCount) {

                var newRow = table.insertRow(rowCount);
                var newCell0 = newRow.insertCell(0);

                newCell0.innerHTML = '<input type="text" size="76" onclick="addNewCell('initialTable')" name="myInputs[]">  <br><br>  <textarea rows="6" cols="76" name="myInputs[]"></textarea > ' ;




            }
          else {

             var newCell1 = lastRow.insertCell(1); 
             newCell1.innerHTML = '<input type="text" size="76" onclick="addNewCell('initialTable')" name="myInputs[]">  <br><br>  <textarea rows="6" cols="76" name="myInputs[]"></textarea > ' ;

            }

            counter++;

        }
}

您的字符串中有语法错误:

newCell0.innerHTML = '<input type="text" size="76" onclick="addNewCell('initialTable')" name="myInputs[]">  <br><br>  <textarea rows="6" cols="76" name="myInputs[]"></textarea > ';

将抛出SyntaxError: Unexpected identifier

使用\\来代替''将起作用:

 newCell0.innerHTML = '<input type="text" size="76" onclick="addNewCell(\'initialTable\')" name="myInputs[]">  <br><br>  <textarea rows="6" cols="76" name="myInputs[]"></textarea > ';

或者,如果您尝试连接变量(代码中未定义):

 newCell0.innerHTML = '<input type="text" size="76" onclick="addNewCell(' + initialTable +')" name="myInputs[]">  <br><br>  <textarea rows="6" cols="76" name="myInputs[]"></textarea > ';

另外,建议您看一下此链接该链接向您展示如何在Chrome DevTools中调试Javascript代码(如果愿意,可以使用firebug)

使用Firebug查看控制台,您会看到错误。

事实证明,而不是if isEven(lastRowCellsCount)我应该使用if (isEven(lastRowCellsCount))即我失踪了括号)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM