2012-06-27 57 views
0

JavaScript的內容:動態添加形式及其在HTML和jQuery的

$('.addTable').live('click', function() { 
    var appendTxt = "<table id='tab1'> 
       <tr><td><input type='text' name='input1' /></td><td><input type='text' name='input2' /></td> 
        <td><input type='button' class='addRow' value='Add Row' /></td></tr></table>"; 
    $("table:last").after(appendTxt); 
}); 

$('.addRow').live('click', function() { 
    var appendTxt = "<td><input type='text'name='input1' /></td><td><input 
       type='text'name='input2' /></td><td><input type='button' class='addRow' value='Add Row'/></td> "; 
    $("tr:last").after(appendTxt); 
}); 

HTML:

<table id="tab"> 
    <tr> 
     <td> 
      <input type="text" name="input1" /> 
     </td> 
     <td> 
      <input type="text" name="input2" /> 
     </td> 
     <td> 
      <input type="button" class="addRow" value="Add Row" /> 
     </td> 
    </tr> 
</table> 

<input type="button" class="addTable" value="addTable" /> 

當我點擊 「添加行」 按鈕,我得到一個新的行動態。當我點擊「添加表格」按鈕時,我得到一張新表格。

但在此之後,當我打了兩個新的「添加行」以及舊錶,我得到的最後添加表添加了一行,因爲我已經把$("tr:last").after(appendTxt) 所以它是存在於最新<tr>追加最新的桌子。

有沒有更好的方法來做到這一點,以便當我點擊「新表」時,我可以添加一行到相應的表?

+0

你到底在期待什麼? – Blaster

+0

我想添加一個新表,當我點擊添加表。這個表t1將有row1。當我點擊添加行按鈕時,它只能在表t1中添加一行。類似地,表格t2必須有它自己的行。 – Papps

+1

每次添加表時,您的代碼也會重新使用相同的ID。 ID必須是唯一的。 – j08691

回答

0

以上您的評論之後。

變化:

$("tr:last").after(appendTxt); 

要:

$(this).closest('table').find('tr:last').after(appendTxt); 

我假設在你添加一個新行每個表中存在的添加行按鈕。

+0

感謝您的修復。有效。 – Papps

+0

@Papps:不客氣 – Blaster