0

有人可以帮我解决这个问题:我有一个包含一行和多列的 Maintable ,在每个 td/column 内我有另一个带有 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 和 name 增加 1,但是我应该如何增加 onchange 和 onclick 函数中的数字。例如,我希望克隆表具有 GetContent('familygender','1') 而不是 GetContent('familygender','0') changedropdownvalue('familyrelationselectField_1',this) 而不是 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 回答