jquery - 如何在具有多个类的表中按计数重命名表行

标签 jquery

这是我的设置,我有一个作为表单一部分的表格,并且有一组包​​含多个类的行

<table>
  <tr class='class1'><!--all rows will host inputs and a button that can delete this row--></tr>
<!--the first row of a class will contain an add row button, and a set of headers-->
<!--there are about 4 rows for each class-->
  <tr class='class2'></tr>
  <tr class='class3'></tr>
  <tr class='class4'></tr>
<table>



特定类的行将对用户隐藏/不可见,直到他们按下按钮来显示特定类的表行。用户可以通过按按钮添加行和删除特定行。所有输入都有名称,并且应该自动生成

不过,我希望保持命名约定一致,保持名称范围易于管理。

我开发了一个删除函数,它可以计算行数,并根据其位置重命名所有输入,但此方法仅适用于没有类的表。 这就是我所拥有的。

/*
inputs would look like this 
<input class="class1" name="input11"></input>
<input class="class2" name="input21"></input>
*/
<script>
$(".class1").each(function(){       
  var row_index = $(this).parent().parent().index();
  var newName = "input1"+row_index;
  $(this).attr("name",newName);
});
</script>

我考虑过使用 .count() 命令,但它无法提供我想要的增量命名。

我想防止输入名称重复的情况,并防止输入名称之间有间隙的情况
即存在名称为 input13 和 input15 的输入,但 input14 不存在。

最佳答案

您可以循环遍历文档的匹配元素并将名称与索引连接起来:

var z = 1;
$.each($('.class1:nth-child(n)'),function(){
  var newName = 'Name'+z;
  $(this).attr('name',newName);
z++;
});

关于jquery - 如何在具有多个类的表中按计数重命名表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57364348/

相关文章:

ajax - jQuery 自动完成功能不显示 Ajax 调用返回的数据

php - 为每个 cURL 请求返​​回 AJAX 结果

javascript - 单击提交按钮两次以发布表单

javascript - 如何使用 json 形式的参数重定向到同一页面

javascript - HTML5 2 音频标签

javascript - jQuery 未加载我的 HTML

javascript - 如何使用jquery设置文本框的边框颜色

jquery - 在 AJAX 函数中添加 CSS

javascript - 函数式 jQuery : Custom Events or Functions?

javascript - 如何在javascript中包含html