`
wazhyu
  • 浏览: 19164 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

JS控制HTML表格行上下移动

阅读更多
补充一下:重新调整了CSS和JS的浏览器兼容,希望大家多多指教,ThankYou!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<title>Table test</title>
<style type="text/css">
table {
width: 300px;
border: 1px solid black;
}
.table2 {
width: 300px;
border: 0px;
}
td {
border: 1px solid black;
text-align: center;
font-size: 12pt;
padding: 3px;
}
.td2 {
border: 0px;
}
.alt {
background: #BEC5BE;
}
</style>
<script language="JavaScript" type="text/javascript">
window.onload = function() {
  var _table = document.getElementById("table1");
  cleanWhitespace(_table);
}

cleanWhitespace = function(element_obj) {
  //遍历element的子结点
  for (var i = 0; i < element_obj.childNodes.length; i++) {
    var node = element_obj.childNodes[i];
    //判断是否是空白文本结点,如果是,则删除该结点
    if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
      node.parentNode.removeChild(node);
  }
}

//使表格行上移,接收参数为链接对象
moveUp = function() {
  //获得表格对象
  var _table = document.getElementById("table1");
  var _row = "";
  for (var i = 0; i < _table.rows.length; i++) {
    if (_table.rows[i].className == "alt")
      _row = _table.rows[i];
  }
  //如果不是第一行,则与上一行交换顺序
  if (_row.previousSibling) {
    var last_row = _row.previousSibling;
    while (last_row.nodeType != 1) {
      last_row = last_row.previousSibling;
    }
  swapNode(_row,last_row);
  }
}

//使表格行下移,接收参数为链接对象
moveDown = function() {
  //获得表格对象
  var _table = document.getElementById("table1");
  var _row = "";
  for (var i = 0; i < _table.rows.length; i++) {
    if (_table.rows[i].className == "alt")
      _row = _table.rows[i];
  }
  //如果不是最后一行,则与下一行交换顺序
  if (_row.nextSibling) {
    var next_row = _row.nextSibling;
    while (next_row.nodeType != 1) {
      next_row = next_row.nextSibling;
    }
    swapNode(_row,next_row);
  }
}

//定义通用的函数交换两个结点的位置
swapNode = function(node1,node2) {
  //获取父结点
  var _parent = node1.parentNode;
  //获取两个结点的相对位置
  var _t1 = node1.nextSibling;
  var _t2 = node2.nextSibling;
  //将node2插入到原来node1的位置
  if (_t1) _parent.insertBefore(node2,_t1);
  else _parent.appendChild(node2);
  //将node1插入到原来node2的位置
  if (_t2) _parent.insertBefore(node1,_t2);
  else _parent.appendChild(node1);
}

work_over = function(obj) {
  obj.style.backgroundColor='#BEC5BE';
}

work_out = function(obj) {
  obj.style.backgroundColor='';
}

work_click = function(obj) {
  //获得表格对象
  var t_obj = document.getElementById("table1");
  //遍历所有表格对象的行
  for (var i = 0; i < t_obj.rows.length; i++) {
    //将行的样式清空
    t_obj.rows[i].className = "";
  }
  obj.className = "alt";
}

work_updateSort = function() {
//获得表格对象
  var t_obj = document.getElementById("table1");
  //获得表格对象数组
  var row_length = t_obj.rows.length;
  var s_num = new Array(row_length);
  //遍历所有表格对象的行
  for (var i = 0; i < row_length; i++) {
    s_num[i] = t_obj.rows[i].id;
  }
}
</script>
</head>
<body>
<table id="table1">
        <tr id="1" onclick="work_click(this);" onmouseover="work_over(this);" onmouseout="work_out(this);">
            <td width="25%">1</td>
            <td width="25%">11</td>
            <td width="25%">栏目</td>
            <td width="25%">栏目</td>
        </tr>
        <tr id="2" onclick="work_click(this);" onmouseover="work_over(this);" onmouseout="work_out(this);">
            <td>2</td>
            <td>22</td>
            <td>栏目</td>
            <td>栏目</td>
        </tr>
        <tr id="3" onclick="work_click(this);" onmouseover="work_over(this);" onmouseout="work_out(this);">
            <td>3</td>
            <td>33</td>
            <td>栏目</td>
            <td>栏目</td>
        </tr>
        <tr id="4" onclick="work_click(this);" onmouseover="work_over(this);" onmouseout="work_out(this);">
            <td>4</td>
            <td>44</td>
            <td>栏目</td>
            <td>栏目</td>
        </tr>
        <tr id="5" onclick="work_click(this);" onmouseover="work_over(this);" onmouseout="work_out(this);">
            <td>5</td>
            <td>55</td>
            <td>栏目</td>
            <td>栏目</td>
        </tr>
</table>
<form id="changeform" name="changeform" method="post">
<table id="table2" class = "table2">
  <tr>
    <td class = "td2">
      <input name="button" type="button" class="" onclick="moveUp();" value="上移"/>
      <input name="button" type="button" class="" onclick="moveDown();" value="下移"/>
      <input name="Submit" type="button" class="" onClick="work_updateSort();" value="保存修改"/>
    </td>
  </tr>
</table>
</form>
</body>
</html>
分享到:
评论

相关推荐

    JS实现的表格行上下移动操作示例

    主要介绍了JS实现的表格行上下移动操作,涉及javascript针对页面元素节点与属性的相关操作技巧,需要的朋友可以参考下

    JS控制HTMLDOM表格行上下移动

    标题中的“JS控制HTML DOM表格行上下移动”指的是在网页中使用JavaScript操作DOM(Document Object Model)元素,特别是HTML表格的行(tr)进行上下移动的功能。这种功能常见于数据管理界面,允许用户通过交互调整...

    table表格内容上下移动的三种实现方法

    在网页设计中,HTML表格(Table)是一种常用的数据展示方式,有时我们需要实现表格内容的上下移动功能,以满足用户交互需求或数据操作便利性。本篇文章将详细讲解三种实现HTML表格内容上下移动的方法。 方法一:...

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

    本文将深入探讨如何使用JavaScript实现表格行的上下移动、置顶和置底功能,以及相关辅助操作。 首先,`js操作table行的上下移动,置顶置底`这个主题涉及到的主要技术是DOM操作,事件监听和数组处理。DOM(Document ...

    javaScript+html实现表格上下移动.zip

    这个压缩包"javaScript+html实现表格上下移动.zip"包含的资源很可能是用于演示如何通过JavaScript来实现在HTML表格中行的上下移动功能。这个功能对于动态交互的数据展示非常有用,比如用户可以调整数据的顺序或进行...

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

    标题 "jquery实现的可增加,删除行,可多行上下移动表格" 描述了一种使用JavaScript库jQuery创建的交互式表格功能。这个功能允许用户在表格中动态添加、删除行,以及上下移动表格中的行,提供了更灵活的数据操作体验...

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

    本文将深入探讨如何使用jQuery来实现表格行(tr)的添加、删除和上下移动,同时提供相关源码供参考。 一、jQuery基本操作 在开始之前,我们需要确保已引入jQuery库。通常在HTML文件头部通过`&lt;script&gt;`标签引入...

    .net页面实现表格上下左右移动光标

    本话题主要探讨如何使用JavaScript(JS)来实现一个功能,即在HTML表格(table)中移动光标并同时选择文本内容。JavaScript是一种强大的客户端脚本语言,它能够直接在用户的浏览器中运行,为网页添加动态功能。 ...

    运用jquery技术实现表格元素的上下移动

    在本教程中,我们将深入探讨如何利用jQuery技术实现表格(table)元素的上下移动,以此来改变表格行(tr)的顺序,以满足用户自定义排序的需求。 首先,我们需要理解HTML表格的基本结构。一个表格由`&lt;table&gt;`元素...

    js table行的上下移动,置顶置底,支持ctrl多选

    本文将详细介绍如何使用JavaScript实现表格行的上下移动、置顶和置底功能,并支持Ctrl多选、选中行样式改变以及行号显示等实用特性。 首先,我们需要创建一个HTML表格元素,包含若干行(tr)和单元格(td)。例如:...

    jquery做的table行上下移动,排序, 用户名验证,js读取xml

    本文将深入探讨jQuery如何实现表格(table)行的上下移动、排序功能,以及用户名验证和JavaScript读取XML的技术细节。 一、jQuery实现表格行上下移动 在网页中,表格常常用于展示结构化数据。jQuery可以通过获取...

    jquery table 上下行移动互换

    在网页开发中,jQuery是一个非常流行的...以上就是使用jQuery实现表格行上下移动互换的基本步骤。这个功能在很多数据管理场景中都非常实用,通过结合HTML、CSS和jQuery,可以构建出更加动态和用户友好的网页应用。

    jquery做的table行上下移动,互换

    标题提到的“jquery做的table行上下移动,互换”是jQuery实现的一种常见功能,通常用于数据表的排序和编辑。这个功能允许用户通过点击按钮或者直接拖拽来改变表格行的顺序,提高交互性和用户体验。 首先,我们需要...

    jQuery实现table中的tr上下移动并保持序号不变

    本示例主要关注如何利用jQuery实现在HTML表格(table)中移动行(tr)的同时保持行内的序号不变,这对于数据排序或用户交互有着重要的应用。我们将探讨以下关键知识点: 1. jQuery选择器与DOM操作: jQuery提供了...

    HTML table表格编辑器

    这款编辑器提供了诸如上下移动行、单元格内数据编辑等功能,大大提升了在网页中操作表格的效率。 在HTML中,`&lt;table&gt;`元素是创建表格的基础,它包含了若干`&lt;tr&gt;`(表格行)元素,每个`&lt;tr&gt;`又包含若干`&lt;td&gt;`(表格...

    上下左右键控制table中光标(兼容多浏览器)

    本文将详细讲解如何使用JavaScript实现输入框内上下左右键以及Enter键控制表格(table)中的光标移动,并在光标到达最后一个输入框时新增一行,确保这个功能在多个浏览器中都能正常工作。 首先,我们需要理解...

    jquery实现上下移动

    通过这样的实现,用户在表格中选择一行后,按下上或下箭头键,即可实现行的上下移动,同时序号会自动更新。这在数据排序或者动态调整表格内容顺序的场景中非常有用。记得在实际项目中,还需要考虑兼容性、错误处理...

    jQuery实现列表上下移动置顶+带入数据库文件

    在本项目中,"jQuery实现列表上下移动置顶+带入数据库文件" 是一个适合初学者的教程,它教你如何使用jQuery库来实现一个功能,允许用户在列表中上下移动条目并将其置顶,同时将这些操作同步到数据库中。这个教程包含...

    superTable,html+css+js轻量冻结上左表头,实现上下左右滑动

    在IT领域,尤其是在网页开发中,表格是一种常见的...这种轻量级的解决方案对于处理大型表格数据,尤其是移动设备上的网页应用,具有很高的实用价值,因为它不需要依赖额外的库或框架,降低了页面加载时间和内存占用。

Global site tag (gtag.js) - Google Analytics