Javascript不会启动

Javascript不会启动,javascript,Javascript,下面我有一些javascript代码的两个版本 在版本1中,当我调用函数addNewCell(tableID)时,我能够触发行警报(“宾果”) 在版本2中,我添加了更多的代码。现在,行警报(“宾果”)不会触发。有什么好处?我确实检查过了,括号里的数字是平衡的 第1版 var counter = 1; var limit = 100; function isEven(value) { value = Number(value); if (value%2 == 0)

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

在版本1中,当我调用函数
addNewCell(tableID)
时,我能够触发行
警报(“宾果”)

在版本2中,我添加了更多的代码。现在,行
警报(“宾果”)
不会触发。有什么好处?我确实检查过了,括号里的数字是平衡的

第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++;

        }
}
var计数器=1;
var限值=100;
函数isEven(值){
值=数字(值);
如果(值%2==0)
返回true;
其他的
返回false;
}
函数addNewCell(tableID){
如果(计数器==限制){
警报(“您已达到添加输入的极限”);
}
否则{
警惕(“宾果”);
var table=document.getElementById(tableID);
var rowCount=table.rows.length;
var lastRow=table.rows[rowCount-1];
var lastrowcellscont=lastRow.getElementsByTagName('td').length;
//可选变量lastRowCellsCount=lastRow.cells.length;
如果是偶数(最后一行){
var newRow=table.insertRow(rowCount);
var newCell0=newRow.insertCell(0);
newCell0.innerHTML='

'; } 否则{ var newCell1=lastRow.insertCell(1); newCell1.innerHTML='

'; } 计数器++; } }
字符串中有语法错误:

newCell0.innerHTML = '<input type="text" size="76" onclick="addNewCell('initialTable')" name="myInputs[]">  <br><br>  <textarea rows="6" cols="76" name="myInputs[]"></textarea > ';
或者,如果您试图连接一个变量(代码中未定义):

newCell0.innerHTML='

';

另外,我建议您看看如何在Chrome DevTools中调试Javascript代码(如果愿意,您可以使用firebug)

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

newCell0.innerHTML = '<input type="text" size="76" onclick="addNewCell('initialTable')" name="myInputs[]">  <br><br>  <textarea rows="6" cols="76" name="myInputs[]"></textarea > ';
或者,如果您试图连接一个变量(代码中未定义):

newCell0.innerHTML='

';

另外,我建议您看看如何在Chrome DevTools中调试Javascript代码(如果愿意,您可以使用firebug)

使用firebug查看控制台,您可以看到错误。

使用firebug查看控制台,您可以看到错误。

结果是
如果isEven(lastRowCellsCount)
我应该用
if(isEven(lastRowCellsCount))

(即,我遗漏了括号)

结果是
如果isEven(lastRowCellsCount)
我应该用
if(isEven(lastRowCellsCount))

(也就是说,我遗漏了括号)

你的控制台有错误吗?你在哪里初始化
初始化表呢?@Hamish——我正在想办法如何使用控制台(Firebug或Chrome开发工具)——如果你能给我指一个指南(noob很容易理解),那就太好了!CTRL+SHIFT+J在chrome上,单击“控制台”选项卡。现在,当你加载一个页面时,会出现错误。你的控制台中有错误吗?你在哪里初始化
initialTable
?@Hamish--我正在试图弄清楚如何使用控制台(Firebug或Chrome DevTools)--如果你能给我指一个指南(noob很容易理解),那就太好了!CTRL+SHIFT+J在chrome上,单击“控制台”选项卡。现在,当你加载一个页面时,错误就会出现。@NicoSantangelo谢谢你的回复——为什么语法错误很重要?毕竟,如果按顺序解释Javascript,即使下面有语法错误,警报(“宾果”)行仍会触发,否?这不是
运行时错误
,而是语法错误,因此解释器会在运行code@NicoSantangelo感谢您的回复——为什么语法错误很重要?毕竟,如果Javascript是按顺序解释的,即使下面有语法错误,警报(“宾果”)行仍然会触发,不是吗?这不是
运行时错误
,而是语法错误,因此解释器会在运行代码之前捕捉到它。我正在尝试弄清楚如何使用控制台(Firebug或Chrome DevTools)--如果你能给我指一个向导(一个傻瓜很容易理解),那就太好了!我正在试图弄清楚如何使用控制台(Firebug或Chrome DevTools)——如果你能给我指一个指南(一个noob很容易理解),那就太好了!
 newCell0.innerHTML = '<input type="text" size="76" onclick="addNewCell(' + initialTable +')" name="myInputs[]">  <br><br>  <textarea rows="6" cols="76" name="myInputs[]"></textarea > ';