1. 程式人生 > >JS控制HTML表格行上下移動

JS控制HTML表格行上下移動

[b]補充一下:[/b]重新調整了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控制HTML表格上下移動

[b]補充一下:[/b]重新調整了CSS和JS的瀏覽器相容,希望大家多多指教,ThankYou!<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xht

js實現html表格<td>標簽中帶換的文本顯示出換效果

end slice 發現 var 轉換 ble .data length app 遇見問題 如下內容中我寫了幾行,但是表格中並未按行顯示,換行符反而變成了空格,於是想自己轉換下 思考問題 1、可以看到表格的內容是後端傳來的數據,於是想直接在後端轉換下,把換行符替換

JS控制HTML元素的顯示和隱藏

inline 顯示空白 http str 是否 ava .get ntb tel 利用來JS控制頁面控件顯示和隱藏有兩種方法,兩種方法分別利用HTML的style中的兩個屬性,兩種方法的不同之處在於控件隱藏後是否還在頁面上占空位。 方法1:   document.getEl

js控制html標籤轉換

例如  label標籤設定點選事件 轉換成input 方案:因為不能直接修改標籤名  所以換種思路, 新建個標籤, 原標籤屬性值賦值給新標籤, 移除原標籤, 加上新標籤 核心程式碼1 複製: var old = docume

js控制單元格 列 相同內容合併

tabObjId:table 的id  cellindex :無效,可根據需要修改成有效。 beginRow:從第幾行開始,暫時預設傳0,其他未測試。 function SpanGrid(tabObjId, cellindex, beginRow) {     var c

xcode 設定快捷鍵 整上下移動

設定整行程式碼上下移動: 找到Xcode中的自帶的配置檔案: /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/ Resources/IDETextKeyBindingSet.plist 用文字編輯

js實現html表格匯出到excel

//將table匯出到excel中         function exportToExcel(tableid){       var curTbl = document.getElementById(tableid);       var oXL;       try

js控制表格變色

ble doctype .com out htm 圖片 技術 ext 鼠標 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> &l

js 鍵盤控制表格input上下左右移動

//初始化獲取的行列 var currentLine= 0; var currentCol=0; function keyDown(obj){     var _row = obj.parentNode;     currentCol = _row.cellIndex;     currentLine = _

控制容器文字數(pc和 移動端)

phone 行數 spa pre size 以及 :hover 框架 mx4 寫在前面的話:   對於文字的單行以及多行顯示,應該是經常用到的一個功能了,看下文吧~ pc 端:   1. 單行限制(兼容所有瀏覽器) 這裏加了一個 鼠標移入時顯示全部 的效果:

js控制當字數超出規定數時顯示點點點

scrip 函數 jquery logs color ips row end function 調用方法: 每次只為一個元素服務,也就是傳入函數的選擇器(class名)頁面中只能有一個,或直接傳id; 比如: //1要限制字數的元素,2要顯示多少行,3要限制字數元素的

JS節點操作 (表格js中添加和單元格,並有一個刪除鍵)

sed doc nod lis 姓名 ins func play 移除 1 <div id="div"> 2 <table id="tab"> 3 <tr> 4 <th&g

JS控制GridView選擇

color copy cat mar out lan alt trac 沒有 ASP.NET裏的GridView控件使用非常廣泛,雖然其功能強大,但總有一些不盡如人意的地方。比如在選擇行的時候,它就沒有UltraWebGrid做的友好;UltraWebGrid允許用戶設置是

在Bootstrap開發框架中使用dataTable直接錄入表格資料(2)--- 控制元件資料來源繫結 在Bootstrap開發框架中使用dataTable直接錄入表格資料

在前面隨筆《在Bootstrap開發框架中使用dataTable直接錄入表格行資料》中介紹了在Web頁面中使用Jquery DataTable外掛進行對資料直接錄入操作,這種處理能夠給使用者提供較好的資料錄入體驗,本篇繼續上篇的內容,繼續介紹這個直接錄入的處理操作,主要涉及到控制元件的初始化和資料來源的繫結等

JS匯出html的table表格

jsp的html的內容 如下,我的這個是使用了jstl標籤形成的table       <span id="Button1" onclick="javascript:HtmlExportToExcel('PanelExcel')">匯出ex

js如何動態新增表格

一、總結 方法一:新增可通過在table的innerHTML屬性中新增tr和td來實現 方法二:通過table的屬性insertRow(),deleteRow()來實現 方法一和方法二對比: 二、js如何實現動態的在表格中新增和刪除行?

關於rem換算、移動端通過js控制動態控制rem寬高比的一個函式

(function () { // rem換算zx var resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'; var do

js獲取table的數和表格中某一行某一列的內容

table的id=“tab” 一、獲取table的行數 var count=document.getElementById("tab").rows.length; 二、獲取第i行第j列的內容(方式不止三種,根據實際情況選擇,比較推薦方式一) 方式一: var title=tab.rows

JS控制文字只顯示兩,超出部分顯示省略號

簡單記錄便於後續的工作和學習。 由於使用css控制文字只顯示多行,超出部分顯示省略號,存在一定的相容性問題,所以總結了一下網上一些大咖使用js實現控制行數的解決方案。 第一步:依次引入jquery.js+jquery.ellipsis.js+jquery.ellipsis.unobtrusive.js。

html5 video 移動開發二(js控制 video 開始暫停,全屏等功能)

var video=document.getElementById("myPlayer"); 進入全屏js控制: //谷歌(webkit核心瀏覽器) video.webkitRequestFullScreen() //火狐 video.mozRequestFullScreen()