用jquery克隆元素

时间:2012-01-31 08:17:31

标签: jquery replace

我正在处理一个表单,用户可以根据需要添加行。有一个名为“添加行”的链接,当它单击时,我想克隆一个隐藏的表并更改它的名称值,一些类名。有谁可以帮我这个?

<table class="montaj montaj-satir">
    <tr>
        <td width="62px"><input type="text" name="oper[--number--][kodu]" size="4" maxlength="4" /></td>
        <td width="38px">
            <input type="checkbox" name="oper[--number--][onay]" value="1" />
            <input type="hidden" name="oper[--number--][terminal_hatasi]" value="0" />
            <input type="hidden" name="oper[--number--][soket_hatasi]" value="0" />
            <input type="hidden" name="oper[--number--][montaj_hatasi]" value="0" />
            <input type="hidden" name="oper[--number--][yon_hatasi]" value="0" />
            <input type="hidden" name="oper[--number--][push_hatasi]" value="0" />
            <input type="hidden" name="oper[--number--][olcu_hatasi]" value="0" />
            <input type="hidden" name="oper[--number--][bant_hatasi]" value="0" />
            <input type="hidden" name="oper[--number--][vida_hatasi]" value="0" />
            <input type="hidden" name="oper[--number--][komponent_hatasi]" value="0" />
        </td>
        <td width="62px"><span class="terminal_hatasi--number--">0</span> <a href="#" class="add hata-ekle" id="terminal_hatasi--number--">&nbsp; &nbsp; &nbsp;</a></td>
        <td width="62px"><span class="soket_hatasi--number--">0</span> <a href="#" class="add hata-ekle" id="soket_hatasi--number--">&nbsp; &nbsp; &nbsp;</a></td>
        <td width="62px"><span class="montaj_hatasi--number--">0</span> <a href="#" class="add hata-ekle" id="montaj_hatasi--number--">&nbsp; &nbsp; &nbsp;</a></td>
        <td width="62px"><span class="yon_hatasi--number--">0</span> <a href="#" class="add hata-ekle" id="yon_hatasi--number--">&nbsp; &nbsp; &nbsp;</a></td>
        <td width="62px"><span class="push_hatasi--number--">0</span> <a href="#" class="add hata-ekle" id="push_hatasi--number--">&nbsp; &nbsp; &nbsp;</a></td>
        <td width="62px"><span class="olcu_hatasi--number--">0</span> <a href="#" class="add hata-ekle" id="olcu_hatasi--number--">&nbsp; &nbsp; &nbsp;</a></td>
        <td width="62px"><span class="bant_hatasi--number--">0</span> <a href="#" class="add hata-ekle" id="bant_hatasi--number--">&nbsp; &nbsp; &nbsp;</a></td>
        <td width="62px"><span class="vida_hatasi--number--">0</span> <a href="#" class="add hata-ekle" id="vida_hatasi--number--">&nbsp; &nbsp; &nbsp;</a></td>
        <td width="62px"><span class="komponent_hatasi--number--">0</span> <a href="#" class="add hata-ekle" id="komponent_hatasi--number--">&nbsp; &nbsp; &nbsp;</a></td>
    </tr>
    <tr>
        <td colspan="2">Kablo Sıra No</td>
        <td colspan="4"><input type="text" name="oper[--number--][kablo_sira_no]" value="" /></td>
        <td colspan="2">Açıklama</td>
        <td colspan="3"><input type="text" name="oper[--number--][aciklama]" value="" /></td>
    </tr>
</table>

具有.hata-ekle类的链接,增加隐藏输入的值以及旁边的跨度。

如果需要新行,用户应点击“添加行”链接,系统应显示新的克隆.montaj表格,但--number--应替换为唯一编号。

我该怎么做?

...谢谢

1 个答案:

答案 0 :(得分:0)

行,

我不了解整个过程,但我可以给你一些指示:

  1. 第一种方法:您在参数中编写一个需要数字的函数,并使用jQuery实用程序创建表:

    function addTable(number) {
      var table = $('<table>');
      var tr = $('<tr>').appendTo(table);
      var td = $('<td>').appendTo(tr);
      var span = $('<span>').appendTo(td).addClass('terminal_hatasi'+number)
      ...
    }
    
  2. 第二种方法:您克隆表格,然后搜索输入/跨度并重新标记:

    function addTable(number) {
      var clone = $('table.montaj').first().clone();
    
      clone.find('input').each(function(item){
        var name = $(this).attr('name');
        $(this).attr('name',name.replace(/\d/,number));
      });
    
      ...
    
      $(body).append(clone);
    }
    
  3. 我认为还有更多的方法,这些是我想到的第一个。这些不一定是更好的......