[英]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.