2

以下のいくつかの JavaScript コードの 2 つのバージョンがあります。

バージョン 1 では、 function を呼び出すと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++;

        }
}
4

3 に答える 3

4

文字列に構文エラーがあります:

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 を使用できます)。

于 2013-06-27T22:46:48.080 に答える
0

Firebug を使用してコンソールを表示すると、エラーが表示されます。

于 2013-06-27T22:49:04.077 に答える