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

当前元素.click(function(){}); 和 当前元素.on(‘click’,function(){});这两种写法是一样的;还可以写成 $(document).on(‘click’,’当前元素’,function(){});

//js代码
$(function(){
    $('#insertRow').click(function(){
        var $tr = $('#templateTr').clone(true);
        $tr.attr('id','');
        $('#columnid tbody').append($tr);
        $tr.show();
    });

    $('#columnid .delrow').click(function(){
        var $tr = $(this).parents("tr");
        $tr.remove();
    });

    $('#columnid .moveup').on('click',function(){
        $(this).each(function(){
            var $tr = $(this).parents("tr");
            if($tr.index() != 0){
                $tr.prev().before($tr);
            }
        });
    });

    $('#columnid .movedown').on('click',function(){
        var trLength = $(this).length;
        $(this).each(function(){
            var $tr = $(this).parents("tr"); 
            if ($tr.index() != trLength - 1) { 
                $tr.next().after($tr);
            }
        });
    });

    /*$(document).on('click','#columnid .movedown',function(){
        var trLength = $("#columnid .movedown").length;
        $(this).each(function(){
            var $tr = $(this).parents("tr"); 
            if ($tr.index() != trLength - 1) { 
                $tr.next().after($tr);
            }
        });
    });*/
});
//html页面代码,这里的很多class属性值都是bootstrap框架的样式,可以忽略
<body>
<h3 style="margin-left: 1%">新增任务</h3>
<form class="form-horizontal" role="form" action="">
  <div class="form-group">
    <label class="col-sm-3 control-label">任务名称</label>
    <div class="col-sm-3">
      <input type="text" class="form-control input-sm" id="" placeholder="请输入任务名称" />
    </div>
    <label class="col-sm-1 control-label">数据源</label>
    <div class="col-sm-3">
      <select class="form-control input-sm">
        <option>选项</option>
      </select>
    </div>
  </div>
  <div class="form-group">
    <label class="col-sm-3 control-label">schema</label>
    <div class="col-sm-3">
      <input type="text" class="form-control input-sm" id="" />
    </div>
    <label class="col-sm-1 control-label">周期</label>
    <div class="col-sm-3">
      <select class="form-control input-sm">
        <option value="1"></option>
        <option value="2"></option>
        <option value="3"></option>
        <option value="4">季度</option>
      </select>
    </div>
  </div>
  <a class="btn btn-primary btn-sm" id="insertRow" href="javascript:void(0);">
      <span class="glyphicon glyphicon-plus"></span> 新增</a>
  <table id="columnid" class="table table-striped table-bordered table-hover table-condensed">
    <thead>
      <tr id="trcolumn">
        <th>字段名称</th>
        <th class="col-sm-1">字段类型</th>
        <th>属性</th>
        <th>参与主键</th>
        <th class="col-sm-2">操作</th>
      </tr>
    </thead>
    <tbody>
      <tr id="templateTr" style="display: none;">
        <td><input type="text" class="form-control input-sm" placeholder="请输入字段名称"/></td>
        <td>
          <select class="form-control input-sm">
            <option value="1">数字</option>
            <option value="2">字符</option>
            <option value="3">日期</option>
          </select>
        </td>
        <td><input type="text" class="form-control input-sm" placeholder="如果是字符,填字符长度;如果是日期,填日期格式"/></td>
        <td><label class="checkbox-inline"><input type="checkbox" name="bePk" />参与主键</label></td>       
        <td>
          <a class="btn btn-primary btn-xs delrow" href="javacript:void(0);"><span class="glyphicon glyphicon-trash"></span> 删除</a>
          <a class="btn btn-primary btn-xs moveup" href="javascript:void(0);"><span class="glyphicon glyphicon-arrow-up"></span> 上移</a>
          <a class="btn btn-primary btn-xs movedown" href="javascript:void(0);"><span class="glyphicon glyphicon-arrow-down"></span> 下移</a>
        </td>
      </tr>
    </tbody>
  </table>
  <div class="form-group">
  <label class="col-sm-5 control-label"></label>
    <div class="col-sm-2">
      <button type="submit" class="btn btn-primary">确定</button>
      <button type="button" class="btn btn-primary" onclick="history.go(-1);">取消</button>
    </div>
  </div>
</form>
</body>
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值