0

誰かがこれを手伝ってくれますか:私は1つの行と複数の列を持つメインテーブルを持っています.各td/列の中にIDを持つ別の内部テーブルがあります. 私は基本的に、最後の td で内部テーブルを複製したいと考えています。

    <table id="innertable_0"
    <tr>
    <td class="policy_new_data  ">
    <div onclick="GetContent('familygender','0')" id="familygenderfirst_0"> 
    </div>
    <div id="familygendersecond_0">
       <select name="familygenderselect_0" onchange="changedropdownvalue('familyrelationselectField_0',this);showSelectedValue('familygender','0')" id="familygenderselectField_0"> 
          <option value="Male">Male</option>
          <option value="Female">Female</option>
       </select>
    </div>
    </td>
    </tr>
    </table>

これは、クローンを作成して Maintable に追加する方法です。

var $lasttdclone = $("#Maintable > tbody > tr:first > td:last").clone();

$lasttdclone.find('table').find('div').find('select').attr("id", function()
      {
         var parts = this.id.match(/(\D+)(\d+)$/);
         return parts[1] + ++parts[2];
       }).attr("name", function()
               {
                  var parts = this.name.match(/(\D+)(\d+)$/);
                  return parts[1] + ++parts[2];
                }).attr("onchange", function()
                       {
                            //what should be the logic to autoincremnt the numeric field by 1, in the onchange calling functions

                         });

    ($lasttdclone).appendTo("#Maintable > tbody > tr:first ") ;

私の問題は次のとおりです。テーブルのクローンを作成し、ID と名前を 1 ずつインクリメントできますが、onchange および onclick 関数で数値をインクリメントするにはどうすればよいですか。たとえば、複製されたテーブルに GetContent('familygender','0') の代わりに GetContent('familygender','1') を持たせたい changedropdownvalue('familyrelationselectField_0',this) の代わりに

どうやってやるの。正規表現を試しましたが、望ましい結果を達成できませんでした。助けてください。御時間ありがとうございます。

4

1 に答える 1

0

答えがわかりました。

num=++part[2];
var fn=this.getAttributeNode('onchange').value;
return fn.replace(/(\d+)/g, num);

他の提案は大歓迎です。

于 2013-09-08T20:51:55.760 に答える