Jquery 如何通过更改属性对输入字段重新排序?

Jquery 如何通过更改属性对输入字段重新排序?,jquery,attributes,element,Jquery,Attributes,Element,调用函数时,如何重新排序输入 ie:现在点击a2删除按钮时,我有a1、a3和a4,我想对其重新排序,使其为a1、a2(原a3)和a3(原a4)。我知道如何手动执行此操作,但如何动态编写 脚本: $(function(){ $('.deleteMe').click(function(){ $(this) .parent() .parent() .remove();

调用函数时,如何重新排序输入

ie:现在点击a2删除按钮时,我有a1、a3和a4,我想对其重新排序,使其为a1、a2(原a3)和a3(原a4)。我知道如何手动执行此操作,但如何动态编写

脚本:

$(function(){ $('.deleteMe').click(function(){ $(this) .parent() .parent() .remove(); //rename the attribute ??? $('#a3').attr('name', 'a2') //a3 becomes a2 $('#a4').attr('name', 'a3') //a4 becomes a3 return false; }); }); $(函数(){ $('.deleteMe')。单击(函数(){ $(本) .parent() .parent() .remove(); //重命名属性 ??? $('#a3').attr('name','a2')//a3变为a2 $('#a4').attr('name','a3')//a4变为a3 返回false; }); }); 以下是HTML:

<form name="myform" id="myform" method="post">
<table>
<tr>
  <td><input type="text" name="a1" id="a1" /></td>
  <td><input type="button" class="deleteMe" name="deleteMe" id="deleteMe" value="a1" /></td>
</tr>
<tr>
  <td><input type="text" name="a2" id="a2" /></td>
  <td><input type="button" class="deleteMe" name="deleteMe" id="deleteMe" value="a2" /></td>
</tr>
<tr>
  <td><input type="text" name="a3" id="a3" /></td>
  <td><input type="button" class="deleteMe" name="deleteMe" id="deleteMe" value="a3" /></td>
<tr>
</tr>
  <td><input type="text" name="a4" id="a4" /></td>
  <td><input type="button" class="deleteMe" name="deleteMe" id="deleteMe" value="a4" /></td>
</tr>
</table>
</form>

如果您可以轻松选择所有输入,只需循环所有输入并重命名即可

container = $(this).parent().parent().parent();
// (delete input)
$(container).find("input:text").each(function(index) {
    $(this).attr("name", "a" + index);
});

然而问题出现了,你为什么要这样做?您可以给所有输入输入相同的名称,大多数服务器站点的东西都应该能够为您提供一个值列表。

如果您可以轻松地选择所有输入,只需遍历所有输入并重命名即可

container = $(this).parent().parent().parent();
// (delete input)
$(container).find("input:text").each(function(index) {
    $(this).attr("name", "a" + index);
});
然而问题出现了,你为什么要这样做?您可以给所有这些字段取一个相同的名称,大多数服务器站点的工作人员都应该能够为您提供一个值列表。

在每个输入字段中添加一个
class=“renamable”
,然后执行以下操作:

$(function(){
  $('.deleteMe').click(function(){
    $(this).parent().parent().remove();
    $('#myForm').find('.renameable').each(function(i){
      $(this).attr('name', 'a'+i);
    });
    return false;
  });
});
在每个输入字段中添加一个
class=“renameable”
,然后执行如下操作:

$(function(){
  $('.deleteMe').click(function(){
    $(this).parent().parent().remove();
    $('#myForm').find('.renameable').each(function(i){
      $(this).attr('name', 'a'+i);
    });
    return false;
  });
});

马蒂,非常感谢!!!在我正在开发的程序中,我实际上有一个输入文本和复选框在旁边。我不知道哪个复选框属于哪一个,如果它们不是全部选中的话。马蒂,非常感谢!!!在我正在开发的程序中,我实际上有一个输入文本和复选框在旁边。我不知道哪个复选框属于什么,如果它们不是全部选中的话。