0

関数が呼び出されたときに入力を並べ替えるにはどうすればよいですか?

つまり、a2 削除ボタンをクリックすると、a1、a3、および a4 があるので、これを並べ替えて、a1、a2 (以前は a3)、および a3 (以前は a4) にします。これを手動で行う方法は知っていますが、動的に記述するにはどうすればよいですか?

脚本:

    
    $(関数(){
        $('.deleteMe').クリック(関数(){
            $(これ)
                。親()
                。親()
                。削除する();
            //属性の名前を変更
            ???
            $('#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>
4

2 に答える 2

2

これらの各入力フィールドに a を追加してclass="renameable"から、次のようにします。

$(function(){
  $('.deleteMe').click(function(){
    $(this).parent().parent().remove();
    $('#myForm').find('.renameable').each(function(i){
      $(this).attr('name', 'a'+i);
    });
    return false;
  });
});
于 2009-12-09T17:58:25.720 に答える
1

すべての入力を簡単に選択できる場合は、それらすべてをループして名前を変更します。

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

しかし、疑問が生じます。なぜこれを行う必要があるのでしょうか。それらすべてに同じ名前を付けることができ、ほとんどのサーバー サイトのものは値のリストを取得できるはずです。

于 2009-12-09T17:55:35.983 に答える