简体   繁体   English

使用按钮jquery添加新行,然后删除按钮

[英]Add new row with button jquery then remove the button

I'm trying to create a table that have " add " button to add new rows in every new row then remove the previous button. 我正在尝试创建一个具有“ add ”按钮的表,以便在每个新行中添加新行,然后删除上一个按钮。 I have a code like this. 我有这样的代码。

  $("#insert-more").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); } }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table id="mytable" class="table table-hover table-striped"> <thead> <th>Check</th> <th>Nama Klien</th> <th>Nama File</th> <th>Ukuran</th> <th>Bahan</th> <th>Jumlah</th> <th></th> </thead> <tbody> <tr> <td> <label class="checkbox"> <input type="checkbox" value="" data-toggle="checkbox"> </label> </td> <td> <select class="form-control"> <option value="default">KLIEN :</option> <option value="default">ELV</option> <option value="default">ZYTA</option> <option value="default">LOUSALUNA</option> <option value="default">MYLADY</option> </select> </td> <td> <select class="form-control"> <option value="default">FILES :</option> <option value="default">TWOTONE 1</option> <option value="default">TWOTONE 1</option> <option value="default">TWOTONE 1</option> <option value="default">TWOTONE 1</option> <option value="default">TWOTONE 1</option> </select> </td> <td> <select class="form-control"> <option value="default">UKURAN :</option> <option value="default">110</option> <option value="default">115</option> <option value="default">120</option> <option value="default">130</option> <option value="default">150</option> </select> </td> <td> <select class="form-control"> <option value="default">BAHAN :</option> <option value="default">MAXMARA</option> <option value="default">VOAL INDO</option> <option value="default">VOAL INDIA</option> <option value="default">DIAMOND</option> <option value="default">SILKY</option> </select> </td> <td><input class="form-control" type="number" name="" value=""></td> <td><button id="insert-more" class="btn btn-primary" type="button" name="button">ADD</button></td> </tr> </tbody> </table> 

Or you can see it here https://jsfiddle.net/f6xcqy2s/ . 或者您可以在这里https://jsfiddle.net/f6xcqy2s/看到它。 In that code the add button will show up in every rows, but i wanted the add button just show up in new row only, so there will be one button only. 在该代码中,添加按钮将显示在每一行中,但是我希望添加按钮仅显示在新行中,因此将只有一个按钮。 Do you know the way? 你知道吗

Hide the button like below.change the id of the button to a class and bind the button like below.it works perfectly 如下所示隐藏按钮。将按钮的id更改为一个类并按如下所示绑定按钮。

$('body').on('click','.insert-more',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);
        }
    });
    $(this).hide();
})

here is the fiddle 是小提琴

在此处输入图片说明

you need to put add button outside the #mytable (table) so you can get your desire output only change html part as i pasted here. 您需要将添加按钮放在#mytable(表)的外面,这样您就可以得到只输出html部分的期望输出,就像我在此处粘贴的那样。

<table id="mytable" class="table table-hover table-striped">
                                    <thead>
                                        <th>Check</th>
                                        <th>Nama Klien</th>
                                        <th>Nama File</th>
                                        <th>Ukuran</th>
                                        <th>Bahan</th>
                                        <th>Jumlah</th>
                                        <th></th>
                                    </thead>
                                    <tbody>
                                        <tr>
                                            <td>
                                            <label class="checkbox">
                                                <input type="checkbox" value="" data-toggle="checkbox">
                                            </label>
                                          </td>
                                            <td>
                                            <select class="form-control">
                                              <option value="default">KLIEN :</option>
                                              <option value="default">ELV</option>
                                              <option value="default">ZYTA</option>
                                              <option value="default">LOUSALUNA</option>
                                              <option value="default">MYLADY</option>
                                            </select>
                                          </td>
                                          <td>
                                            <select class="form-control">
                                              <option value="default">FILES :</option>
                                              <option value="default">TWOTONE 1</option>
                                              <option value="default">TWOTONE 1</option>
                                              <option value="default">TWOTONE 1</option>
                                              <option value="default">TWOTONE 1</option>
                                              <option value="default">TWOTONE 1</option>
                                            </select>
                                          </td>
                                          <td>
                                            <select class="form-control">
                                              <option value="default">UKURAN :</option>
                                              <option value="default">110</option>
                                              <option value="default">115</option>
                                              <option value="default">120</option>
                                              <option value="default">130</option>
                                              <option value="default">150</option>
                                            </select>
                                          </td>
                                          <td>
                                            <select class="form-control">
                                              <option value="default">BAHAN :</option>
                                              <option value="default">MAXMARA</option>
                                              <option value="default">VOAL INDO</option>
                                              <option value="default">VOAL INDIA</option>
                                              <option value="default">DIAMOND</option>
                                              <option value="default">SILKY</option>
                                            </select>
                                          </td>
                                            <td><input class="form-control" type="number" name="" value=""></td>

                                        </tr>
                                    </tbody>
                                </table>
                                </table>
                                <tr>
                                <td><button id="insert-more" class="btn btn-primary" type="button" name="button">ADD</button></td></tr></table>

let me know is it ok for you ? 让我知道你还好吗?

Here first we create an event handler function and assign it to clickHandler . 在这里,首先我们创建一个事件处理函数,并将其分配给clickHandler Then when we append the button into the table row after that we assign that click handler to the newly added button using the code as $("#insert-more").click(clickHandler); 然后,当我们将按钮添加到表格行中之后,使用代码$("#insert-more").click(clickHandler);将该点击处理程序分配给新添加的按钮$("#insert-more").click(clickHandler); .

 $( document ).ready(function() { var clickHandler = 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); } }); $(this).remove(); $("#insert-more").click(clickHandler); }; $("#insert-more").click(clickHandler); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table id="mytable" class="table table-hover table-striped"> <thead> <th>Check</th> <th>Nama Klien</th> <th>Nama File</th> <th>Ukuran</th> <th>Bahan</th> <th>Jumlah</th> <th></th> </thead> <tbody> <tr> <td> <label class="checkbox"> <input type="checkbox" value="" data-toggle="checkbox"> </label> </td> <td> <select class="form-control"> <option value="default">KLIEN :</option> <option value="default">ELV</option> <option value="default">ZYTA</option> <option value="default">LOUSALUNA</option> <option value="default">MYLADY</option> </select> </td> <td> <select class="form-control"> <option value="default">FILES :</option> <option value="default">TWOTONE 1</option> <option value="default">TWOTONE 1</option> <option value="default">TWOTONE 1</option> <option value="default">TWOTONE 1</option> <option value="default">TWOTONE 1</option> </select> </td> <td> <select class="form-control"> <option value="default">UKURAN :</option> <option value="default">110</option> <option value="default">115</option> <option value="default">120</option> <option value="default">130</option> <option value="default">150</option> </select> </td> <td> <select class="form-control"> <option value="default">BAHAN :</option> <option value="default">MAXMARA</option> <option value="default">VOAL INDO</option> <option value="default">VOAL INDIA</option> <option value="default">DIAMOND</option> <option value="default">SILKY</option> </select> </td> <td><input class="form-control" type="number" name="" value=""></td> <td><button id="insert-more" class="insert-more btn btn-primary" type="button" name="button">ADD</button></td> </tr> </tbody> </table> 

Here you go with a solution https://jsfiddle.net/f6xcqy2s/4/ 在这里您可以找到解决方案https://jsfiddle.net/f6xcqy2s/4/

 $(document).on('click', "#insert-more", function () { $('#mytable tbody') .append(`<tr>${$(this).closest('tr').html()}</tr>`); $(this).remove(); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table id="mytable" class="table table-hover table-striped"> <thead> <th>Check</th> <th>Nama Klien</th> <th>Nama File</th> <th>Ukuran</th> <th>Bahan</th> <th>Jumlah</th> <th></th> </thead> <tbody> <tr> <td> <label class="checkbox"> <input type="checkbox" value="" data-toggle="checkbox"> </label> </td> <td> <select class="form-control"> <option value="default">KLIEN :</option> <option value="default">ELV</option> <option value="default">ZYTA</option> <option value="default">LOUSALUNA</option> <option value="default">MYLADY</option> </select> </td> <td> <select class="form-control"> <option value="default">FILES :</option> <option value="default">TWOTONE 1</option> <option value="default">TWOTONE 1</option> <option value="default">TWOTONE 1</option> <option value="default">TWOTONE 1</option> <option value="default">TWOTONE 1</option> </select> </td> <td> <select class="form-control"> <option value="default">UKURAN :</option> <option value="default">110</option> <option value="default">115</option> <option value="default">120</option> <option value="default">130</option> <option value="default">150</option> </select> </td> <td> <select class="form-control"> <option value="default">BAHAN :</option> <option value="default">MAXMARA</option> <option value="default">VOAL INDO</option> <option value="default">VOAL INDIA</option> <option value="default">DIAMOND</option> <option value="default">SILKY</option> </select> </td> <td><input class="form-control" type="number" name="" value=""></td> <td><button id="insert-more" class="btn btn-primary" type="button" name="button">ADD</button></td> </tr> </tbody> </table> 

In the solution, amount of jQuery code is very less. 在解决方案中, jQuery代码的数量非常少。

Hope this will help you. 希望这会帮助你。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM