jquery实现table动态添加行、删除行以及行的上移和下移 20190804新版

表格排序
//增加行       add_tr
//删除行       remove_tr
//排序--向上   move_up
//排序--向下   move_down
//第一行只显示向下,最后一行只显示向上hide_move

@extends('layouts.public')

@section('head')
    <link rel="stylesheet" href="{{cdn('js/plugins/webuploader/single.css')}}">
@endsection

@section('bodyattr')class="gray-bg"@endsection

@section('body')
    <div class="wrapper wrapper-content">
        <div class="row">
            <div class="col-sm-12">
                <div class="ibox float-e-margins">
                    <div class="ibox-content">
                        <form method="post" class="form-horizontal ajaxForm">


                            {{--意见反馈高频分词开关 start--}}

                            <div class="form-group" style=" border-bottom:1px solid #ccc;">
                                <div class="col-sm-2" style=" font-size: 20px; font-weight: bold; line-height: 200%;">意见反馈高频分词开关</div>
                            </div>
                            <div class="form-group">
                                <label class="col-sm-3 control-label">开关</label>
                                <div class="col-sm-6">
                                    <p class="form-control-static">
                                        <input type="radio" name="words_switch" value="1" @if(isset($bigsetting['words_switch'])&&$bigsetting['words_switch']==1)checked="checked"@endif />开
                                        <input type="radio" name="words_switch" value="0" @if(!isset($bigsetting['words_switch'])||$bigsetting['words_switch']==0)checked="checked"@endif />关
                                    </p>
                                </div>
                            </div>

                            <div class="form-group">
                                <label class="control-label"></label>
                                <div class="col-md-10">
                                    <table cellspacing="1" cellpadding="0" style="width: 100%;"
                                           class="table table-bordered table-hover">
                                        <thead>
                                        <tr>
                                            <th align="center" style="width:50%;">分词</th>
                                            <th align="center" style="width:30%;">权重</th>
                                            <th align="center">操作</th>
                                        </tr>
                                        </thead>
                                        <tbody id="list_data_tbody">
                                        @if(isset($bigsetting['words_word'])&&isset($bigsetting['words_quanzhong'])&&$bigsetting['words_word']&&$bigsetting['words_quanzhong'])
                                            @foreach ($bigsetting['words_word'] as $key=>$vo)
                                                <tr class="list_tr" rel="{{$key}}">
                                                    <td align="center">
                                                        <input placeholder="分词" id="range{{$key}}_1"
                                                               name="words_word[{{$key}}]"
                                                               value="{{$vo}}"
                                                               class="form-control" type="text"
                                                               autocomplete="off" required/>
                                                    </td>
                                                    <td align="center">
                                                        <input placeholder="权重" id="range{{$key}}_2"
                                                               name="words_quanzhong[{{$key}}]"
                                                               value="{{$bigsetting['words_quanzhong'][$key]}}"
                                                               class="form-control" type="number"
                                                               autocomplete="off" required/>
                                                    </td>
                                                    <td>
                                                        <a href="javascript:void(0);" onclick="move_up(this)"
                                                           class="move_up" style="color: #58b4ef;">↑</a>&nbsp;
                                                        <a href="javascript:void(0);"
                                                           onclick="remove_tr(this)"
                                                           style="color: #58b4ef;">删除</a>&nbsp;
                                                        <a href="javascript:void(0);" onclick="move_down(this)"
                                                           class="move_down" style="color: #58b4ef;">↓</a>
                                                    </td>
                                                </tr>
                                            @endforeach
                                        @endif
                                        <tr class="more_tr">
                                            <td colspan="4"><a href="javascript:add_tr()"
                                                               style="color: #58b4ef;">+增加分词</a>
                                            </td>
                                        </tr>
                                        </tbody>
                                    </table>
                                </div>
                            </div>

                            {{--意见反馈高频分词开关 end--}}


                            <div class="form-group">
                                <div class="col-sm-6 col-sm-offset-2">
                                    <button class="btn btn-primary" type="submit">保存</button>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>


        {{--意见反馈高频分词开关 start--}}
        <table style="display:none">
            <tr id="default_tr1">
                <td align="center">
                    <input placeholder="分词" id="rangesort_id_1" name="words_word[sort_id]"
                           class="form-control" type="text" autocomplete="off" required/>
                </td>
                <td align="center">
                    <input placeholder="权重" id="rangesort_id_2" name="words_quanzhong[sort_id]"
                           class="form-control" type="number" autocomplete="off" required/>
                </td>
                <td>
                    <a href="javascript:void(0);" onclick="move_up(this)" class="move_up" style="color: #58b4ef;">↑</a>&nbsp;
                    <a href="javascript:void(0);" onclick="remove_tr(this)" style="color: #58b4ef;">删除</a>&nbsp;
                    <a href="javascript:void(0);" onclick="move_down(this)" class="move_down"
                       style="color: #58b4ef;">↓</a>
                </td>
            </tr>
        </table>
        {{--意见反馈高频分词开关 end--}}


    </div>
@endsection


@section('script')
    <script type="text/javascript">

        var tr_sort_id = 0;

        //增加行
        function add_tr() {
            var list_count = 0;
            $('.list_tr').each(function () {
                list_count += 1;
                var sort_id = $(this).attr('rel');
                sort_id = parseInt(sort_id);
                if (sort_id > tr_sort_id) tr_sort_id = sort_id;
            });
            tr_sort_id = tr_sort_id + 1;
            re = new RegExp("sort_id", "g");
            str = $('#default_tr1').html().replace(re, tr_sort_id);
            var html = '<tr class="list_tr" rel="' + tr_sort_id + '">' + str + '</tr>';
            if (list_count == 0) {
                $('#list_data_tbody tr').before(html);
            } else {
                $('.list_tr:last').after(html);
            }
            hide_move();
        }

        //删除行
        function remove_tr(_this) {
            $(_this).parent().parent().remove();
            hide_move();
        }

        //排序--向上
        function move_up(obj) {
            var objParentTR = $(obj).parent().parent();
            var prevTR = objParentTR.prev();
            if (prevTR.length > 0) {
                prevTR.insertAfter(objParentTR);
            }
            hide_move();
        }

        //排序--向下
        function move_down(obj) {
            var objParentTR = $(obj).parent().parent();
            var nextTR = objParentTR.next();
            if (nextTR.length > 0) {
                nextTR.insertBefore(objParentTR);
            }
            hide_move();
        }

        //第一行只显示向下,最后一行只显示向上
        function hide_move() {
            $('.move_up').each(function () {
                $(this).show();
            });
            $('.move_down').each(function () {
                $(this).show();
            });
            $('.list_tr:first').find('.move_up').hide();
            $('.list_tr:last').find('.move_down').hide();
        }

        @if(isset($bigsetting['words_word'])&&isset($bigsetting['words_quanzhong'])&&$bigsetting['words_word']&&$bigsetting['words_quanzhong'])
        hide_move();
        @endif

    </script>


@endsection

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用jQuery可以通过以下步骤动态table添加: 1. 创建一个新的元素,可以使用jQuery的`$('<tr>')`方法来创建一个新的元素。 2. 在新的元素中添加需要显示的数据,可以使用jQuery的`append()`方法来添加数据。 3. 将新的元素添加table中,可以使用jQuery的`append()`方法将新的元素添加table中。 示例代码如下: ``` // 获取table元素 var table = $('#myTable'); // 创建新的元素 var newRow = $('<tr>'); // 在新的元素中添加数据 newRow.append($('<td>').text('John')); newRow.append($('<td>').text('Doe')); newRow.append($('<td>').text('25')); // 将新的元素添加tabletable.append(newRow); ``` 以上代码会在名为`myTable`的table添加数据,该数据包含三列,分别为`John`、`Doe`和`25`。 ### 回答2: jQuery是一种非常流的JavaScript库,它为网页开发带来了许多便利,包括动态向HTML表格中添加。下面将介绍如何使用jQuery动态添加表格。 首先,我们需要创建一个空的HTML表格,并指定一个ID。例如: ```html <table id="myTable"> <thead> <tr> <th>列名1</th> <th>列名2</th> <th>列名3</th> </tr> </thead> <tbody> </tbody> </table> ``` 接下来,在JavaScript中使用jQuery选择器来选择我们新建的表格: ```javascript var table = $("#myTable"); ``` 然后,我们可以使用jQuery的append()方法向表格中添加。例如,下面代码将向表格中添加: ```javascript table.find('tbody').append('<tr><td>内容1</td><td>内容2</td><td>内容3</td></tr>'); ``` 在这个例子中,我们使用了jQuery的find()方法来选择表格的tbody元素,因为我们只想向表格的主体中添加(即忽略表头)。然后,使用append()方法来向tbody元素添加一个包含三个单元格的,每个单元格中包含一些内容。 如果我们需要每次添加,可以使用一个for循环来迭代添加: ```javascript for (var i = 0; i < data.length; i++) { table.find('tbody').append('<tr><td>' + data[i].value1 + '</td><td>' + data[i].value2 + '</td><td>' + data[i].value3 + '</td></tr>'); } ``` 在这个例子中,我们假设data是一个包含多数据的数组,并迭代使用一个for循环将每个数据添加到表格中。 最后,我们可以把所有这些代码放在一个函数中,以方便随时调用: ```javascript function addTableRow(table, rowData) { table.find('tbody').append('<tr><td>' + rowData.value1 + '</td><td>' + rowData.value2 + '</td><td>' + rowData.value3 + '</td></tr>'); } ``` 现在,每当我们需要向表格中添加,只需调用这个函数,并将tabe和rowData作为参数传入即可。 总之,使用jQuery动态向表格中添加非常容易,只需使用jQuery的append()方法即可实现。但是,我们需要指定正确的表格和数据,在此之前请确保正确地理解了以上例子。 ### 回答3: jQuery是一种非常流的JavaScript库,可以方便地操作HTML文档,动态地向table添加也是jQuery的强项之一。 动态table添加通常分为两个步骤:首先是创建一添加table中,然后是设置这中单元格的内容。 首先,我们可以使用jQuery的append()方法,将一个新的添加table中。具体步骤如下: 1. 选择table标签的jQuery对象。 例如,如果我们的表格id为“myTable”,可以使用如下代码选择它: var table = $('#myTable'); 2. 创建一个新的元素。 我们可以使用jQuery的.createElement()方法来创建一个新的tr元素: var row = $('<tr>'); 3. 将该元素添加table中。 可以使用jQuery的.append()方法,将这个新添加到表格中: table.append(row); 这样就完成了添加的第一步,接下来我们需要向表格中的新添加单元格。 1. 创建一个新的单元格元素。 可以使用jQuery的.createElement()方法来创建一个新的td元素: var cell1 = $('<td>'); var cell2 = $('<td>'); 2. 设置单元格内的内容。 使用jQuery的.text()方法设置单元格内的文本,例如: cell1.text('This is cell 1'); cell2.text('This is cell 2'); 3. 将单元格元素添加元素中。 可以使用jQuery的.append()方法将单元格元素添加元素中: row.append(cell1); row.append(cell2); 现在,我们已经完成了动态table添加的全部步骤。完整的代码如下所示: var table = $('#myTable'); var row = $('<tr>'); var cell1 = $('<td>'); var cell2 = $('<td>'); cell1.text('This is cell 1'); cell2.text('This is cell 2'); row.append(cell1); row.append(cell2); table.append(row); 通过这些简单的操作,我们可以轻松地向table添加任意数量的和单元格。当然,我们也可以在代码中使用循环来动态地生成多个,从而更加灵活地应对不同的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值