jquery - 在 JQuery 中单击按钮向表中添加新行

标签 jquery html

我是 jquery 的新手。我有以下代码。在这里,我想通过单击添加按钮在表格中获取新行,但我无法获取。

有人能告诉我我在这里犯了什么错误吗?

<script type="text/javascript">
var $ = jQuery.noConflict();
$("#addrows").click(function () {
  if (document.getElementById("hiddenprice").value == "") {
    imagecounter = 4;
   } else {
   imagecounter = parseFloat(document.getElementById("hiddenprice").value) +1;
   }
  //imagecounter=4;     
  var newImageDiv = $(document.createElement('div'))
   .attr("id", 'add_div' + imagecounter);
  newImageDiv.after().html('<table width="100%" cellpadding="0" 
  cellspacing="0" class="pdzn_tbl1" border="0">' +
  '<tr><td><input type="text" name="rollno<? $i ?>"/></td>' +
  '<td><input type="text" name="firstname<? $i ?>" /></td>' +
  '<td><input type="text" name="lastname<? $i ?>" /></td></tr></table>');

  newImageDiv.appendTo("#addgroup");
  $("tr:last").after(newImageDiv);
  document.getElementById("hiddenprice").value = imagecounter;
  imagecounter++;
});
</script>
<div class="common" style="width:1040px; -overflow-x:scroll; padding: 5px 5px 0 5px;">
  <table id="maintable" width="50%" cellpadding="0" cellspacing="0" class="pdzn_tbl1" border="#729111 1px solid" >
  <tr>  
    <th>Roll No</th>
    <th>First Name</th>
    <th>Last Name</th>
  </tr>
  <?php $t_row=3; for($i=1;$i<=$t_row;$i++) {   ?>
  <tr id="rows">
    <div> 
      <td><input type="text" name="rollno<? $i ?>"/></td>
      <td><input type="text" name="firstname<? $i ?>"/></td>
      <td> <input type="text" name="lastname<? $i ?>"/></td>
    </div>
  </tr>
  <? } ?>

  <div id="addgroup"> 
    <div id="add_div1"> </div>
  </div> 
  <table>
    <input type="button" name="add" value="+Add" id="addrows" />
    <input type="hidden" id="hiddenprice" name="hiddenprice" value="3"/> 
  </table>
</div>

代码格式化和编辑:代码对齐更新并删除不需要的样式代码以提高可读性

最佳答案

Sample DEMO for Adding new row

$("#addrows").click(function () {
     $("#mytable").each(function () {
         var tds = '<tr>';
         jQuery.each($('tr:last td', this), function () {
             tds += '<td>' + $(this).html() + '</td>';
         });
         tds += '</tr>';
         if ($('tbody', this).length > 0) {
             $('tbody', this).append(tds);
         } else {
             $(this).append(tds);
         }
     });
});

更新: 这里 div 在错误的地方关闭,它应该在 tr 关闭之前结束,可能就是这个错误

<tr id="rows">
<div style="padding-left: 5px"> 
<td style="padding:5px;" > <input type="text" name="rollno<? $i ?>"  /> </td>
<td style="padding:5px;"> <input type="text" name="firstname<? $i ?>" /> </td>
<td style="padding:5px;"> <input type="text" name="lastname<? $i ?>" /> </td>
</div> // right
</tr>
</div> // wrong

UPDATED DEMO 2

关于jquery - 在 JQuery 中单击按钮向表中添加新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19092894/

相关文章:

javascript - 滚动时触摸的 CSS 或 Javascript 事件

javascript - jQuery 选择多个相同的属性值

javascript - 使用 javascript 删除任何特定的 html 代码

javascript - 将表单数据发布到重定向页面

html - 为什么有些网站在我检查标记时具有未分配给元素的样式?

javascript - 在 'click' 上未触发/查找要打开的数据表子行

javascript - 点击警报所选日期时的全日历

javascript - min 或 gzip,哪个更好?

javascript - 保持 jQueryUI 对话框内容可见,为对话框内容添加新维度

javascript - React - 单击更改 CSS 属性(箭头功能)