`

table--表格的各种操作--增,删,移动,插入到指定位置

阅读更多

table--表格的各种操作--增,删,移动,插入到指定位置

效果图:

 



 

 

源码如下: 方法有备注:

------------------------------------------------------

 

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>

<body>


<table width="700px;" id="mytable" border="1px;" cellpadding="0px" cellspacing="0px">
 <tr height="30px">
     <th>账号</th>
        <th>密码</th>
        <th>操作</th>
    </tr>
  <tr height="30px">
     <td>张三(原始数据)</td>
        <td>123</td>
        <td>
        <a href="#" onclick="addBefore(this)">添加(Before)</a>
        <a href="#"  onclick="addAfter(this)">添加(After)</a>
        <a href="#"  onclick="deleteCurrentRow(this)">删除</a>
        <a href="#"  onclick="moveToUp(this)">上移</a>
        <a href="#"  onclick="moveToDown(this)">下移</a>
        </td>       
    </tr>
   <tr height="30px">
     <td>李四(原始数据)</td>
        <td>456</td>
        <td>
        <a href="#" onclick="addBefore(this)">添加(Before)</a>
        <a href="#"  onclick="addAfter(this)">添加(After)</a>
         <a href="#"  onclick="deleteCurrentRow(this)">删除</a>
         <a href="#"  onclick="moveToUp(this)">上移</a>
        <a href="#"  onclick="moveToDown(this)">下移</a>
    </td>
    </tr>
   
     <tr height="30px">
     <td>赵六(原始数据)</td>
        <td>789</td>
        <td>
        <a href="#" onclick="addBefore(this)">添加(Before)</a>
        <a href="#"  onclick="addAfter(this)">添加(After)</a>
         <a href="#"  onclick="deleteCurrentRow(this)">删除</a>
         <a href="#"  onclick="moveToUp(this)">上移</a>
        <a href="#"  onclick="moveToDown(this)">下移</a>
    </td>
    </tr>
</table>

<br />
<input type="button" value="添加到表格中的第一行之前"  onclick="addToTableFirst()"/>
<input type="button" value="添加到表格中的最后一行之后" onclick="addToTableLast()"/>

<input type="button" value="添加到第二行" onclick="addToTableTwo()"/>

<script>


 /**
  在之前进行添加.
 */
 var count = 1; //定义全局变量,进行区别,当前是第几个被插入。。。
 function addBefore(obj){
  var table = document.getElementById("mytable");//获取表格对象
  /*
   obj:  <a>
   obj.parentNode:  <td>
   obj.parnetNode.parentNode: <tr>
   obj.parentNode.parentNode.rowIndex: 所在表格中的行数---表头算一行.
  */
  var currentRow = obj.parentNode.parentNode.rowIndex;
  
  //添加行
  var new_tr =  table.insertRow(currentRow);//新增加一行.
  
  //设置tr的高度
  new_tr.style.height ="30px";
  
  //添加列
  var td_name = new_tr.insertCell(0);
  td_name.innerHTML = "王五(在之前进行插入)"+count;
  count +=1;
  var td_pwd = new_tr.insertCell(1);
  td_pwd.innerHTML = "lisi";
  var td_operation = new_tr.insertCell(2);
  td_operation.innerHTML = ' <a href="#" onclick="addBefore(this)">添加(Before)</a> '+
               '<a href="#"  onclick="addAfter(this)">添加(After)</a>' +
        '<a href="#"  onclick="deleteCurrentRow(this)">删除</a>'+
               '<a href="#"  onclick="moveToUp(this)">上移</a>'+
              '<a href="#"  onclick="moveToDown(this)">下移</a>';
 }
 
 /**
  在之后进行插入....
 */
 function addAfter(obj){
  var table = document.getElementById("mytable");//获取表格对象
  /*
   obj:  <a>
   obj.parentNode:  <td>
   obj.parnetNode.parentNode: <tr>
   obj.parentNode.parentNode.rowIndex: 所在表格中的行数---表头算一行.
  */
  var currentRow = obj.parentNode.parentNode.rowIndex;
  
  //添加行
  var new_tr =  table.insertRow(currentRow+1);//新增加一行.
  
  //设置tr的高度
  new_tr.style.height ="30px";
  
  //添加列
  var td_name = new_tr.insertCell(0);
  td_name.innerHTML = "王五(在之后进行插入)"+count;
  count +=1;
  var td_pwd = new_tr.insertCell(1);
  td_pwd.innerHTML = "lisi";
  var td_operation = new_tr.insertCell(2);
  td_operation.innerHTML = ' <a href="#" onclick="addBefore(this)">添加(Before)</a> '+
               '<a href="#"  onclick="addAfter(this)">添加(After)</a>' +
        '<a href="#"  onclick="deleteCurrentRow(this)">删除</a>'+
               '<a href="#"  onclick="moveToUp(this)">上移</a>'+
              '<a href="#"  onclick="moveToDown(this)">下移</a>';
 }
 
 /**
  删除当前行
 */
 function deleteCurrentRow(obj){
  var row_tr = obj.parentNode.parentNode.rowIndex;//获取当前行数
  var table = document.getElementById("mytable");//获取表格对象
  table.deleteRow(row_tr);
 }
 
 
 /**
  上移一行
 */
 function moveToUp(obj){
  var row_tr = obj.parentNode.parentNode.rowIndex;//获取当前行数
  if(row_tr<=1){
   alert("已经是第一行了,无法进行移动!");
   return;
  }
  changeRow(row_tr-1,row_tr);
 }
 
 
 /**
  下移一行
 */
 function moveToDown(obj){
  var row_tr = obj.parentNode.parentNode.rowIndex;//获取当前行数
  if(row_tr>=document.getElementById("mytable").rows.length-1){
   alert("已经是最后一行了,无法进行移动!");
   return;
  }
  changeRow(row_tr,row_tr+1);
 }
 
 
 /**
 交换行
 */
 function changeRow(row1,row2){
   var table = document.getElementById("mytable");//获取表格对象
   
   if(table.rows[row1].swapNode){//FireFox不可用,IE可用
    table.rows[row1].swapNode(table.rows[row2]);
   }else{
    swapNode(table.rows[row1],table.rows[row2]);
   }
 }
 
   //交换2个DOM节点---火狐等中实现IE中的swapNode方法
function swapNode(node1,node2)
{
  var parent = node1.parentNode;//父节点
  var t1 = node1.nextSibling;//两节点的相对位置
  var t2 = node2.nextSibling;
 
  //如果是插入到最后就用appendChild
  if(t1) parent.insertBefore(node2,t1);
  else parent.appendChild(node2);
  if(t2) parent.insertBefore(node1,t2);
  else parent.appendChild(node1);
}
 
 
 /**
  添加到表格中的第一行
 */
 function addToTableFirst(){
  var table = document.getElementById("mytable");//获取表格对象
  /*
   obj:  <a>
   obj.parentNode:  <td>
   obj.parnetNode.parentNode: <tr>
   obj.parentNode.parentNode.rowIndex: 所在表格中的行数---表头算一行.
  */
  
  //添加行
  var new_tr =  table.insertRow(1);//新增加一行.---就在第一行
  
  //设置tr的高度
  new_tr.style.height ="30px";
  
  //添加列
  var td_name = new_tr.insertCell(0);
  td_name.innerHTML = "王五(在第一行加入..)"+count;
  count +=1;
  var td_pwd = new_tr.insertCell(1);
  td_pwd.innerHTML = "lisi";
  var td_operation = new_tr.insertCell(2);
  td_operation.innerHTML = ' <a href="#" onclick="addBefore(this)">添加(Before)</a> '+
               '<a href="#"  onclick="addAfter(this)">添加(After)</a>' +
        '<a href="#"  onclick="deleteCurrentRow(this)">删除</a>'+
               '<a href="#"  onclick="moveToUp(this)">上移</a>'+
              '<a href="#"  onclick="moveToDown(this)">下移</a>';
 }
 
 /**
  添加到表格中的最后一行之后
 */
 function addToTableLast(){
  var table = document.getElementById("mytable");//获取表格对象
  /*
   obj:  <a>
   obj.parentNode:  <td>
   obj.parnetNode.parentNode: <tr>
   obj.parentNode.parentNode.rowIndex: 所在表格中的行数---表头算一行.
  */
  
  //添加行
  var new_tr =  table.insertRow(table.rows.length);//新增加一行.---就在第一行
  
  //设置tr的高度
  new_tr.style.height ="30px";
  
  //添加列
  var td_name = new_tr.insertCell(0);
  td_name.innerHTML = "王五(在最后一行加入)"+count;
  count +=1;
  var td_pwd = new_tr.insertCell(1);
  td_pwd.innerHTML = "lisi";
  var td_operation = new_tr.insertCell(2);
  td_operation.innerHTML = ' <a href="#" onclick="addBefore(this)">添加(Before)</a> '+
               '<a href="#"  onclick="addAfter(this)">添加(After)</a>' +
        '<a href="#"  onclick="deleteCurrentRow(this)">删除</a>'+
               '<a href="#"  onclick="moveToUp(this)">上移</a>'+
              '<a href="#"  onclick="moveToDown(this)">下移</a>';
 }
 
 
 /**
  添加到表格中的第二行之后
 */
 function addToTableTwo(){
  var table = document.getElementById("mytable");//获取表格对象
  /*
   obj:  <a>
   obj.parentNode:  <td>
   obj.parnetNode.parentNode: <tr>
   obj.parentNode.parentNode.rowIndex: 所在表格中的行数---表头算一行.
  */
  
  //添加行
  if(table.rows.length<2){
   alert("表格行数少于2");
   return;
  }
  var new_tr =  table.insertRow(2);//新增加一行.---就在第一行
  
  //设置tr的高度
  new_tr.style.height ="30px";
  
  //添加列
  var td_name = new_tr.insertCell(0);
  td_name.innerHTML = "王五(在最后一行加入)"+count;
  count +=1;
  var td_pwd = new_tr.insertCell(1);
  td_pwd.innerHTML = "lisi";
  var td_operation = new_tr.insertCell(2);
  td_operation.innerHTML = ' <a href="#" onclick="addBefore(this)">添加(Before)</a> '+
               '<a href="#"  onclick="addAfter(this)">添加(After)</a>' +
        '<a href="#"  onclick="deleteCurrentRow(this)">删除</a>'+
               '<a href="#"  onclick="moveToUp(this)">上移</a>'+
              '<a href="#"  onclick="moveToDown(this)">下移</a>';
 }
 
</script>

 

 

</body>
</html>

0
0
分享到:
评论

相关推荐

    table-editor-obsidian,Obsidian表格插件,让你更好的体验笔记工具

    将压缩包“table-editor-obsidian”解压后,将其内容移动到你本地Obsidian应用程序的“.\obsidian\plugins”目录下。确保你正确找到了路径,这通常是你的个人文档库所在的文件夹。完成文件移动后,重启Obsidian应用...

    Qt实现Table-->Table控件拖拽的工程

    在目标Table控件中,我们需要处理`dropEvent()`事件,解析QMimeData中的数据,并根据需求插入到表格的适当位置。这可能涉及到模型(QStandardItemModel或自定义模型)的操作,例如插入新的行或列,或者更新现有数据...

    vxe-table-v3.zip

    7. **扩展性**:vxe-table允许自定义插槽,可以插入自定义的头部、尾部、行或单元格模板,实现高度定制化。 8. **国际化**:支持多语言切换,方便全球化的应用开发。 9. **性能优化**:使用虚拟滚动技术,处理大量...

    js操作table行的上下移动,置顶置底

    首先,`js操作table行的上下移动,置顶置底`这个主题涉及到的主要技术是DOM操作,事件监听和数组处理。DOM(Document Object Model)是HTML和XML文档的编程接口,通过JavaScript我们可以对表格中的每一行进行操作。...

    UNI-APP 中sqlite demo 增删查改

    本`SQLite` demo 演示了如何在 `UNI-APP` 中进行数据库的增删查改操作。 首先,我们要了解的是 `sqlite.js` 文件,这是一个自封装的 SQLite 库,它提供了一系列与 SQLite 交互的方法,如打开数据库、关闭数据库、...

    js操作table元素,表格的行列新增、删除汇集.txt

    根据给定的文件信息,我们可以总结出一系列关于使用JavaScript(简称JS)操作HTML中的`&lt;table&gt;`元素,尤其是对表格的行(`&lt;tr&gt;`)和列(`&lt;td&gt;`或`&lt;th&gt;`)进行增删操作的关键知识点。以下是对这些功能的详细解释: #...

    php+mysql+bootstrap+jquery实现增删查改的前后端

    在本项目中,我们主要探讨如何使用PHP、MySQL、Bootstrap和jQuery这四个技术栈来构建一个功能完善的前后端系统,实现数据的增删查改(CRUD)操作。以下是关于这些技术及其相互配合的详细说明。 **PHP**: PHP是一种...

    jquery实现的可增加,删除行,可多行上下移动表格

    这个功能允许用户在表格中动态添加、删除行,以及上下移动表格中的行,提供了更灵活的数据操作体验。在网页开发中,这种功能常见于数据管理界面,便于用户对数据进行排序和编辑。 首先,我们需要理解jQuery库的基本...

    layui-表格穿梭-transferTable-源码

    在给定的"layui-表格穿梭-transferTable-源码"资源中,我们主要关注的是layui框架中的一个特定组件——穿梭框(Transfer Table)。这个组件在数据管理和筛选时非常有用,尤其适用于需要在两个列表之间移动或选择项的...

    jQuery UI拖拽信息到Table表格特效

    **jQuery UI 拖拽信息到Table表格特效详解** 在网页开发中,用户交互体验是至关重要的,而jQuery UI库提供了丰富的组件和效果,其中拖放功能(Drag and Drop)可以显著提升用户的操作便捷性。本篇文章将详细介绍...

    js动态表格--行操作

    如果要上移一行,可以先保存当前行,然后将其前一个兄弟节点移动到当前位置,最后将当前行插入到前一个节点之前。下移操作类似,只是交换顺序。例如,上移选中的行: ```javascript let selectedRow = document....

    Bootstrap Table两个table间行数据拖拽

    在“Bootstrap Table两个Table数据之间行数据拖拽”的主题中,我们主要讨论的是如何实现用户可以通过拖放操作在两个Bootstrap表格之间移动行数据,这种功能在数据管理、比较或重新排序场景中非常实用。 首先,我们...

    Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作

    需求: vue-cli项目树形控件:一级节点为本地节点,默认展开一级节点,增删改后局部刷新数据。 增加节点,点击确定后局部刷新,渲染新数据。 源码 element组件样式 &lt;el-tree class="treeitems" :data="data...

    table的td整列拖动交换以及重新排列位置

    可以使用`insertBefore()`或`appendChild()`方法将单元格插入到正确的位置。 6. **边界检查**: 考虑到表格的边界,我们需要在拖动过程中检查是否越界,防止单元格被拖出表格范围。 7. **性能优化**: 为了避免...

    table内容随便移动

    这通常涉及到DOM操作,如改变行的`style.top`和`style.left`属性,或者在某些情况下,需要调整表格结构,将行插入到新的位置。 5. **处理边界条件**:确保行不会移动到表格之外,或者在其他行之上或之下。同时,要...

    Android 读写word文档,按照指定位置插入文字,替换文字,表格,图片,替换表格中文字图片

    本教程将详细讲解如何在Android中实现读写Word文档,包括在指定位置插入文字、替换现有文字、插入和修改表格以及插入和替换图片。 首先,我们需要引入Apache POI库,这是一个Java API,用于处理微软的Office文档,...

    JQuery操作表格(附源码)实现tr上下移动。

    移动表格行涉及到选择行,然后将其插入到新的位置。有几种方法可以实现这一目标,例如: 1. 上移行: ```javascript function moveUp(row) { row.prev().before(row); } // 选中行上移 $("#myTable tbody tr:...

    js控制表格排序,插入,删除,移动行或列,导出表格

    本文将深入探讨如何使用纯JavaScript实现表格的排序、插入、删除、移动行或列以及导出功能,同时还会提到如何增加表头。 首先,让我们讨论表格排序。在JavaScript中,我们可以获取表格元素,然后对数据进行比较以...

    ElementUI transfer+table.zip

    结合"穿梭框+table"的标签,我们可以推断这个压缩包可能包含了一个示例或模板,展示如何将穿梭框与表格结合,实现更高效的数据操作。在实际应用中,这样的组合可能用于将穿梭框选择的结果动态地填充到表格中,或者...

Global site tag (gtag.js) - Google Analytics