Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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_Jquery_Html - Fatal编程技术网

Javascript 如何设置按钮处理程序以删除父表行?

Javascript 如何设置按钮处理程序以删除父表行?,javascript,jquery,html,Javascript,Jquery,Html,我有一个HTML和jQuery项目,目前所有的工作都非常适合我希望他们做的事情。我现在需要添加一个链接到此行的删除/删除按钮: '<button class="removeThis" onclick="removeThis(' + tr.length + ')">Delete</button >' + 但当然,它没有做我需要它做的事情 有人能帮我解决这个问题吗 提前谢谢 $document.readyfunction{ $'.buttons'。在“单击”“按钮.隐藏”

我有一个HTML和jQuery项目,目前所有的工作都非常适合我希望他们做的事情。我现在需要添加一个链接到此行的删除/删除按钮:

'<button class="removeThis" onclick="removeThis(' + tr.length + ')">Delete</button >' +
但当然,它没有做我需要它做的事情

有人能帮我解决这个问题吗

提前谢谢

$document.readyfunction{ $'.buttons'。在“单击”“按钮.隐藏”功能上{ console.log'hide'; $'form'。隐藏; }; $'.buttons'。在“单击”“按钮.添加”功能上{ console.log'add'; var edit=$'edit'; editRow=$'editRow'; 编辑.show; 如果!$'addNew'。长度{ 编辑.append; } 如果编辑行{ editRow.remove; } 对于变量x=1;x<$“输入”。长度;x++{ $'btd'+x.val; } }; $“显示”。单击函数{ //$'form'。show; //美元'btd1'。val'Vlad'; //$‘btd2’。val‘Andrei’; //$'btd3'.val'vTask'; //$‘btd4’。val‘Ceva’; //$‘btd5’。val‘Alceva’; }; }; 函数edita{ var edit=$'edit'; addNew=$'addNew'; editRow=$'editRow'; 编辑.show; 如果添加新的{ addNew.remove; } 如果editRow.length{ editRow.replacetwith; }否则{ 编辑.append; } $.each$'.tr-'+a.find'td',函数键,val{ $'formedit input[type=text]'.eqkey.val$val.text; }; } 函数savea{ var tr=$'tr'; 有效=真; 消息=; $'formedit input'。每个函数{ var$this=$this; 如果!$this.val{ var inputName=$this.attr'name'; 有效=错误; 消息+='请完成所有列'+inputName+'\n'; } }; 如果!有效{ 警报信息; }否则{ 对于var q=1;q<$'.tr-'+a+'td'.长度;q++{ $'.tr-'+a+'td:nth child'+q+.html$'btd'+q.val; } 对于变量x=1;x<$“输入”。长度;x++{ $'btd'+x.val; } $'editRow'。删除; } } 函数addNewTr{ var tr=$'tr'; 有效=真; 消息=; $'formedit input'。每个函数{ var$this=$this; 如果!$this.val{ var inputName=$this.attr'name'; 有效=错误; 消息+='请输入您的'+inputName+'\n'; } }; 如果!有效{ 警报信息; }否则{ $'table tbody'。追加+ + +$'btd1'.val++ +$'btd2'.val++ +$'btd3'.val++ +$'btd4'.val++ +$'btd5'.val++ + “删除”+ “编辑”+ + + ; 对于变量x=1;x<$“输入”。长度;x++{ $'btd'+x.val; } } } 功能移除{ $'tr-'+'a'。删除; } vTask [vTask] 名称 次要名称 电子邮件 电话 暗语 添加 隐藏
下面的示例函数生成一个字符串“tr-”+“a”,它将始终只查找tr-a:

只需删除“a”左右的引号:


下面的示例函数生成一个字符串“tr-”+“a”,它将始终只查找tr-a:

只需删除“a”左右的引号:


我想你只需要删除“a”中的引号:

function removeThis(a) {
    $('.tr-' + a).remove();
}
编辑:这段代码完全有效!我确实需要在“tr”之前加一个点,因为它是一个类

$document.readyfunction{ $'.buttons'。在“单击”“按钮.隐藏”功能上{ console.log'hide'; $'form'。隐藏; }; $'.buttons'。在“单击”“按钮.添加”功能上{ console.log'add'; var edit=$'edit'; editRow=$'editRow'; 编辑.show; 如果!$'addNew'。长度{ 编辑.append; } 如果编辑行{ editRow.remove; } 对于变量x=1;x<$“输入”。长度;x++{ $'btd'+x.val; } }; $“显示”。单击函数{ //$'form'。show; //美元'btd1'。val'Vlad'; //$‘btd2’。val‘Andrei’; //$'btd3'.val'vTask'; //$‘btd4’。val‘Ceva’; //$‘btd5’。val‘Alceva’; }; }; 函数edita{ var edit=$'edit'; addNew=$'addNew'; editRow=$'editRow'; 编辑.show; 如果添加新的{ addNew.remove; } 如果editRow.length{ editRow.replacetwith; }否则{ 编辑.append; } $.each$'.tr-'+a.find'td',函数键,val{ $'formedit input[type=text]'.eqkey.val$val.text; }; } 函数savea{ var tr=$'tr'; 有效=真; 消息=; $'formedit input'。每个函数{ var$this=$this; 如果!$this.val{ var inputName=$this.attr'name'; 有效=错误; 消息+='请完成所有列'+inputName+'\n'; } }; 如果!有效{ 警报信息; }否则{ 对于var q=1;q<$'.tr-'+a+'td'.长度;q++{ $'.tr-'+a+'td:nth child'+q+.html$'btd'+q.val; } 对于var x=1;x<$‘输入’。长度;x++{ $'btd'+x.val; } $'editRow'。删除; } } 函数addNewTr{ var tr=$'tr'; 有效=真; 消息=; $'formedit input'。每个函数{ var$this=$this; 如果!$this.val{ var inputName=$this.attr'name'; 有效=错误; 消息+='请输入您的'+inputName+'\n'; } }; 如果!有效{ 警报信息; }否则{ $'table tbody'。追加+ + +$'btd1'.val++ +$'btd2'.val++ +$'btd3'.val++ +$'btd4'.val++ +$'btd5'.val++ + “删除”+ “编辑”+ + + ; 对于变量x=1;x<$“输入”。长度;x++{ $'btd'+x.val; } } } 功能移除{ 警报“.tr-”+a; $'.tr-'+a.remove; } vTask [vTask] 名称 次要名称 电子邮件 电话 暗语 添加 隐藏 删去
我想你只需要删除“a”中的引号:

function removeThis(a) {
    $('.tr-' + a).remove();
}
编辑:这段代码完全有效!我确实需要在“tr”之前加一个点,因为它是一个类

$document.readyfunction{ $'.buttons'。在“单击”“按钮.隐藏”功能上{ console.log'hide'; $'form'。隐藏; }; $'.buttons'。在“单击”“按钮.添加”功能上{ console.log'add'; var edit=$'edit'; editRow=$'editRow'; 编辑.show; 如果!$'addNew'。长度{ 编辑.append; } 如果编辑行{ editRow.remove; } 对于变量x=1;x<$“输入”。长度;x++{ $'btd'+x.val; } }; $“显示”。单击函数{ //$'form'。show; //美元'btd1'。val'Vlad'; //$‘btd2’。val‘Andrei’; //$'btd3'.val'vTask'; //$‘btd4’。val‘Ceva’; //$‘btd5’。val‘Alceva’; }; }; 函数edita{ var edit=$'edit'; addNew=$'addNew'; editRow=$'editRow'; 编辑.show; 如果添加新的{ addNew.remove; } 如果editRow.length{ editRow.replacetwith; }否则{ 编辑.append; } $.each$'.tr-'+a.find'td',函数键,val{ $'formedit input[type=text]'.eqkey.val$val.text; }; } 函数savea{ var tr=$'tr'; 有效=真; 消息=; $'formedit input'。每个函数{ var$this=$this; 如果!$this.val{ var inputName=$this.attr'name'; 有效=错误; 消息+='请完成所有列'+inputName+'\n'; } }; 如果!有效{ 警报信息; }否则{ 对于var q=1;q<$'.tr-'+a+'td'.长度;q++{ $'.tr-'+a+'td:nth child'+q+.html$'btd'+q.val; } 对于变量x=1;x<$“输入”。长度;x++{ $'btd'+x.val; } $'editRow'。删除; } } 函数addNewTr{ var tr=$'tr'; 有效=真; 消息=; $'formedit input'。每个函数{ var$this=$this; 如果!$this.val{ var inputName=$this.attr'name'; 有效=错误; 消息+='请输入您的'+inputName+'\n'; } }; 如果!有效{ 警报信息; }否则{ $'table tbody'。追加+ + +$'btd1'.val++ +$'btd2'.val++ +$'btd3'.val++ +$'btd4'.val++ +$'btd5'.val++ + “删除”+ “编辑”+ + + ; 对于变量x=1;x<$“输入”。长度;x++{ $'btd'+x.val; } } } 功能移除{ 警报“.tr-”+a; $'.tr-'+a.remove; } vTask [vTask] 名称 次要名称 电子邮件 电话 暗语 添加 隐藏 删去
您完全可以在没有jQuery的情况下实现这一点,我强烈建议您这样做

function removeThis(e){
  const parentTd  = e.parentNode;
  const parentTr = parentTd.parentNode;
  const parentTable = parentTr.parentNode;

  return parentTable.removeChild(parentTr);
}
在你的按钮上你做到了

 <button onClick='removeThis(this)'>Delete me</button>
通过这种方式,您可以创建一个可测试且可重用的函数,用于删除所有DOM元素


哦,顺便说一句,这种方式可以从内到外工作,而不是在整个文档中查询要删除的元素。

完全不需要jQuery就可以实现这一点,我强烈建议这样做

function removeThis(e){
  const parentTd  = e.parentNode;
  const parentTr = parentTd.parentNode;
  const parentTable = parentTr.parentNode;

  return parentTable.removeChild(parentTr);
}
在你的按钮上你做到了

 <button onClick='removeThis(this)'>Delete me</button>
通过这种方式,您可以创建一个可测试且可重用的函数,用于删除所有DOM元素


哦,顺便说一句,这样做是从内到外的,而不是在整个文档中查询要删除的元素。

删除字母“a”周围的引号,以便使用其中的变量:

function removeThis(a) {
    $('.tr-' + a).remove();
}

您还应该考虑使用不同的方法来对表行进行编号。如果删除,行号将开始被重用 删除行,然后添加新行:

Row 0, Row 1, Row 2, Row 3, Row 4

Add row. There are 5 rows, so the new row is row 5.
Row 0, Row 1, Row 2, Row 3, Row 4, Row 5

Remove row 1.
Row 0, Row 2, Row 3, Row 4, Row 5

Add row. There are 5 (!!!) rows, so the new row is (also!!!) row 5.
Row 0, Row 2, Row 3, Row 4, Row 5, Row 5
在每次添加行时,不要为TR获得新的值,而是考虑每次添加行时递增的全局变量:

var rowCounter = 0;

function addNewTr() {
    //snip

    rowCounter++;

    $('table tbody').append('' +
        '<tr class="tr-' + rowCounter + '">' +

    //snip
}

删除字母“a”周围的引号,以便可以在此处使用变量:

function removeThis(a) {
    $('.tr-' + a).remove();
}

您还应该考虑使用不同的方法来对表行进行编号。如果删除行,然后添加新行,行号将开始重新使用:

Row 0, Row 1, Row 2, Row 3, Row 4

Add row. There are 5 rows, so the new row is row 5.
Row 0, Row 1, Row 2, Row 3, Row 4, Row 5

Remove row 1.
Row 0, Row 2, Row 3, Row 4, Row 5

Add row. There are 5 (!!!) rows, so the new row is (also!!!) row 5.
Row 0, Row 2, Row 3, Row 4, Row 5, Row 5
在每次添加行时,不要为TR获得新的值,而是考虑每次添加行时递增的全局变量:

var rowCounter = 0;

function addNewTr() {
    //snip

    rowCounter++;

    $('table tbody').append('' +
        '<tr class="tr-' + rowCounter + '">' +

    //snip
}


你是说这个吗?:“tr-”+aDid你是说这个吗?:“tr-”+aStill不工作也试过了。忘了说对不起,太棒了,工作很完美,直到不工作也试过了。忘了提抱歉太好了,工作很完美只做了我的删除按钮dissapear@Andrei224231哎呀,我忘了你需要删除TR。你需要创建该TR的DOM实例并将其传递给removeThis。如果我知道怎么做的话:。我一周前刚开始学习javascriptYou可以按原样从这个示例中提取按钮代码,并执行如下操作:var parentTr=e.parentNode;返回parentTr.parentNode.removeChildparentTr@Andrei224231由于David Millar的回复,我更新了我的答案。只做了我的删除按钮dissapear@Andrei224231哎呀,我忘了你需要删除TR。你需要创建该TR的DOM实例并将其传递给removeThis。如果我知道怎么做的话:。我一周前刚开始学习javascriptYou可以按原样从这个示例中提取按钮代码,并执行如下操作:var parentTr=e.parentNode;返回parentTr.parentNode.removeChildparentTr@Andrei224231感谢David Millar的回复,我更新了我的答案。该功能删除了不工作的提示。我尝试了alsoSorry@Andrei224231,开始时还缺少一个句点,表示您正在搜索一个类。函数removeThisa不起作用。我尝试了alsoSorry@Andrei224231在开始时还缺少一个句点来表示您正在搜索一个类。如果您需要这种方法,您必须这样做:function removeThisa{$'。greenTable tr:eq'+a+.remove;}如果您需要这种方法,您必须这样做:function removeThisa{$'.greenTable tr:eq'+a+.remove;}