Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中的函数不';当另一个函数工作时,它不工作_Javascript_Html_Forms_Html Table_Rows - Fatal编程技术网

JavaScript中的函数不';当另一个函数工作时,它不工作

JavaScript中的函数不';当另一个函数工作时,它不工作,javascript,html,forms,html-table,rows,Javascript,Html,Forms,Html Table,Rows,我有一个用HTML编写的表单。此表单中有2个按钮和一个表格。表中的每一行包含一个复选框和两个文本字段 按钮用于在表中添加和删除行。“删除”按钮仅适用于选中其复选框的行。它们有一个onClick方法,该方法引用了在下面的标记上用JavaScript编写的两个方法,addRow(tableID)和deleteRow(tableID) addRow(tableID)在我单击其按钮时工作,但在我单击remove按钮时不会发生任何事情,remove按钮指的是deleteRow(tableID)方法 这是表

我有一个用HTML编写的表单。此表单中有2个按钮和一个表格。表中的每一行包含一个复选框和两个文本字段

按钮用于在表中添加和删除行。“删除”按钮仅适用于选中其复选框的行。它们有一个
onClick
方法,该方法引用了在下面的
标记上用JavaScript编写的两个方法,
addRow(tableID)
deleteRow(tableID)

addRow(tableID)
在我单击其按钮时工作,但在我单击remove按钮时不会发生任何事情,remove按钮指的是
deleteRow(tableID)
方法

这是表格的代码:



(所有操作仅适用于带有复选框的条目。)

地址 电话号码

函数addRow(tableID){ var table=document.getElementById(tableID); var rowCount=table.rows.length; 如果(行数<10){ var row=table.insertRow(rowCount); var colCount=table.rows[0].cells.length; 对于(变量i=0;iif(rowCount问题在于,使用
行.cells[0].childNodes[0]
查找节点是一种非常脆弱的方法。您检索的是文本节点,而不是复选框。使用
childNodes
即使对HTML进行最小的更改也会中断

一个更可靠的方法是找到你想要的

var chkbox = row.cells[0].querySelector('[type=checkbox]')


(所有操作仅适用于带有复选框的条目。)

地址 电话号码

函数addRow(tableID){ var table=document.getElementById(tableID); var rowCount=table.rows.length; 如果(行数<10){ var row=table.insertRow(rowCount); var colCount=table.rows[0].cells.length; 对于(变量i=0;i如果(rowCount不要同时问两个问题。Border设置为1应该是一个单独的问题,这样可以搜索它并帮助其他人。此外,您应该有一个工作示例。最后,正如Liam提到的,您进行了什么样的调试?我编辑了您的代码以包含调试器语句。在打开开发工具的情况下运行它,您将看到问题是。检查您的
chkbox
变量。如果您以前从未调试过,请参阅Liam的链接。您是否尝试过我的建议?我的评论实际上会告诉您问题的确切原因。如果您尝试过,您应该编辑您的问题,显示您如何调试它以及您当前面临的问题。堆栈溢出不允许其他人查看为您调试代码,您必须表明您至少完成了某种程度的调试。真的,我已经回答了您的问题,但我正在催促您学习如何自己解决问题。一旦您添加了您已完成的调试,我将很高兴投票重新打开,但我相信如果您按照我的建议进行操作,您将自己解决问题提示。@JuanMendes我刚刚调试了它,发现变量
chkbox
row
未定义。我将把它添加到问题中,如果你能重新打开这个问题,我会感谢你的。row没有定义……chkbox没有定义……听起来不像是你实际调试的。我刚刚检查了这个方法,但没有定义毫无疑问,这仍然不起作用。我认为它不起作用,因为正如我在question@IdoNaveh你说它不工作是什么意思?我按了“添加”和“删除联系人”按钮,他们添加和删除了行。@downvoter这应该不会像它那样困扰我……但是谁来downvote这是一个答案,代码完全符合OP的要求,没有任何评论?