Javascript使用foreach函数添加新行

时间:2015-07-13 20:11:20

标签: javascript jquery dynamic foreach html-table

示例: http://jsfiddle.net/k7jwLvt1/

$(function(){
    var tbl = $("#table");

    $("#addRowBtn").click(function(){
        $("<tr><td>Lorem Ipsum</td><td>Lorem Ipsum</td><td>Lorem Ipsum</td><td>Lorem Ipsum</td><td><input type='checkbox' class='setbox'></td><td><button class='delRowBtn'>Delete</button></td></tr>").appendTo(tbl);        
    });

    $(document.body).delegate(".delRowBtn", "click", function(){
        $(this).closest("tr").remove();        
    });    

});

我目前正在向表中添加新行的行添加复选框。同时,我有一个foreach循环来检查这些复选框以执行一个AJAX脚本,但这对于这个问题是微不足道的。

如果我默认填充一行(不单击“添加行”按钮),则foreach循环工作得很好。但是,它不适用于随后添加的新行。如何在页面加载后使用foreach循环检测新添加的行?

我已尝试将foreach循环封装为函数,并在每次添加行按钮单击时重新执行它,但这似乎在队列中添加了AJAX脚本。

    function setbox() {
         $(\".setBox\").each(function() {
                var isChecked = this.checked;

                $('.setBox').click(function()    {
                    $.ajax(blahblahblah});
                }
            });
      }
   }

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我认为这可能对您有帮助,您不需要使用函数setbox()。您可以尝试此代码。

  $('body').on('click', '.setbox',function()   {
    var isChecked = this.checked;
    alert(isChecked);
    //$.ajax(blahblahblah});
 });