将行动态添加到HTML中

Adding rows dynamically into HTML

本文关键字:HTML 添加 动态      更新时间:2023-12-28

这是我经过大量研究后得到的,尽管我会分享,

请让我知道,如果我可以优化它更多。此代码在单击添加行时添加新行,并动态分配id和名称。

        <script type="text/javascript">
        $(document).ready(function(e) {
        //n:variable for generating dynamic values
        var n=1;
        $("#add").click(function() {    
        n++;
       // converting HTML to JS readable format
       var strVar="";
       strVar += "<tr>";
       strVar += "        <td id='"day'">Day ";
       strVar += n;
       strVar +=" <'/td>";
       strVar += "        <td><textarea name='"" ;
       strVar += n;
       strVar +="'"cols='"50'" rows='"10'" id='"" 
       strVar += n;
       strVar +="'"><'/textarea><'/td>";
       strVar += "      <'/tr>";
     $(strVar).insertAfter("#mytable tr:nth-last-child(3)");
             document.getElementById("h").value= n;     
             return false;
             });
      });
   </script> 

HTML

    <table>
    <tr id="test">
      <td id="day">Day 1</td>
      <td><textarea name="1" cols="50" rows="10" id="1"></textarea></td>
    </tr>


  <tr><td>&nbsp;</a></td><td><a href="#" id="add" style="color:#00F">Add another Day</td>   </tr>
  <tr>
    <!-- sending hidden field with the number of fields generated for entering into db using php-->
    <td>&nbsp; <input type="hidden" id="h" value=""/>  </td>
    <td><input type="image" name="button"  src="../images/admin/submit.png" onMouseOver="this.src='../images/admin/submit_hover.png'" onMouseOut="this.src='../images/admin/submit.png'" id="button" value="Add this Item now"></td>
  </tr>
  </table>

documentfragment用于创建快速dom节点。

var f=document.createDocumentFragment();
for(var a=0;a<5;a++){
 var field=document.createElement('td');
 field.textContent='field '+a;
 f.appendChild(field);
}
yourTable.appendChild(document.createElement('tr')).appendChild(f);

较慢但较短。

var tr='<tr><td>field '+['1','2','3','4','5'].join('</td><td>field ')+'</td></tr>';