js表格上下移动添加删除
html部分
<div onclick='fn()'>加</div>
<table width="250" border="1" >
<tbody id="div">
<tr>
<td width="25%">1</td>
<td width="25%">11</td>
<td width="25%"><a href="javascript:void(0)" onclick="moveUp(this)">上移</a></td>
<td width="25%"><a href="javascript:void(0)" onclick="moveDown(this)">下移</a></td>
<td width="25%"><a href="javascript:void(0)" onclick="shanchu(this)">删除</a></td>
</tr>
<tr>
<td>2</td>
<td>22</td>
<td><a href="javascript:void(0)" onclick="moveUp(this)">上移</a></td>
<td><a href="javascript:void(0)" onclick="moveDown(this)">下移</a></td>
<td><a href="javascript:void(0)" onclick="shanchu(this)">删除</a></td>
</tr>
<tr>
<td>3</td>
<td>33</td>
<td><a href="javascript:void(0)" onclick="moveUp(this)">上移</a></td>
<td><a href="javascript:void(0)" onclick="moveDown(this)">下移</a></td>
<td><a href="javascript:void(0)" onclick="shanchu(this)">删除</a></td>
</tr>
<tr>
<td>4</td>
<td>44</td>
<td><a href="javascript:void(0)" onclick="moveUp(this)">上移</a></td>
<td><a href="javascript:void(0)" onclick="moveDown(this)">下移</a></td>
<td><a href="javascript:void(0)" onclick="shanchu(this)">删除</a></td>
</tr>
<tr>
<td>5</td>
<td>55</td>
<td><a href="javascript:void(0)" onclick="moveUp(this)">上移</a></td>
<td><a href="javascript:void(0)" onclick="moveDown(this)">下移</a></td>
<td><a href="javascript:void(0)" onclick="shanchu(this)">删除</a></td>
</tr>
</tbody>
</table>
css部分
.on{
background-color: yellow;
}
.in{
background-color:pink;
}
js部分
//上移
function moveUp(_a){
var a_tr = _a.parentNode.parentNode;//选点击a的父级td的父级tr
var a_tr_table=a_tr.parentNode;//tr的父级tbody
var tr_tr = a_tr.previousSibling;//选择tr的同级前一个节点tr
console.log(tr_tr.nodeType);
//nodeType为1代表元素
while(tr_tr&&tr_tr.nodeType!=1){//while如果不满足条件会一直执行下面的方法
tr_tr = tr_tr.previousSibling;
}
if(tr_tr){
a_tr_table.insertBefore(a_tr,tr_tr);//insertBefore(a_tr,tr_tr)a_tr要插入的节点,在tr_tr之前
}
color(); }
//变色
function color(){
var element=document.getElementById("div");
var tr=element.getElementsByTagName('tr');
for(var i=0;i<tr.length;i++){
if(i%2==0){
tr[i].className="on";
}else{
tr[i].className="in";
}
}
}
color();
//下移
function moveDown(_a){
var a_tr = _a.parentNode.parentNode;//a的tr
var tr_tr = a_tr.nextSibling;//a的tr下的tr
var a_tr_table = a_tr.parentNode;
console.log(tr_tr.nodeType);
while(tr_tr && tr_tr.nodeType != 1){
tr_tr = tr_tr.nextSibling; }
if(tr_tr){
a_tr_table.insertBefore(tr_tr,a_tr);
}
color(); }
//删除
function shanchu(_a){
var a_tr = _a.parentNode.parentNode;//a的tr
a_tr.parentNode.removeChild(a_tr);
color(); }
//添加
var a=1;
var b=2;
function fn(){
a+=a;
b+=b;
var str="<tr><td>"+a+"</td><td>"+b+"</td><td><a href=\"javascript:void(0)\" onclick=\"moveUp(this)\">上移</a></td><td><a href=\"javascript:void(0)\" onclick=\"moveDown(this)\">下移</a></td><td><a href=\"javascript:void(0)\" onclick=\"shanchu(this)\">删除</a></td></tr>";
var element=document.getElementById("div");
element.innerHTML+=str;
color();
}

js表格上下移动添加删除的更多相关文章
- js动态给table添加/删除tr的方法
js动态给table添加/删除tr的方法. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> ...
- WPF下的Richtextbox中实现表格合并,添加删除行列等功能
.Net中已有现在的方法实现这些功能,不过可能是由于未完善,未把方法公开出来.只能用反射的方法去调用它. 详细信息可以查看.Net Framework 的源代码 http://referencesou ...
- js+jquery动态设置/添加/删除/获取元素属性的两种方法集锦对照(动态onclick属性设置+动态title设置)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html140 ...
- js节点的创建添加删除
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- element-ui 表格可编辑添加删除
<template> <div id="Cold_all"> <div class="Cold_Left"> <el- ...
- js数组指定位置添加删除
示例参考:http://www.w3school.com.cn/jsref/jsref_splice.asp
- js 表格操作----添加删除
js 表格操作----添加删除 书名:<input type="text" id="name"> 价格:<input type="t ...
- 表格的一些原生js操作(隔行变色,高亮显示,添加删除,搜索)
看着网上的视频教程,虽说还是有点简单,但还是不免想记录下.这些操作包括(隔行变色,高亮显示,添加删除,搜索功能),而这儿就是涉及table的原有属性“tBodies” “rows” “cells”等几 ...
- 编辑 Ext 表格(一)——— 动态添加删除行列
一.动态增删行 在 ext 表格中,动态添加行主要和表格绑定的 store 有关, 通过对 store 数据集进行添加或删除,就能实现表格行的动态添加删除. (1) 动态添加表格的行 gridS ...
随机推荐
- Html 重要单词归纳
1.translate(x,y)平移2.scale(x,y)缩放3.fillstyle填充4.linearGradient(xstart,ystart,xend,yend)渐变5.move to 将光 ...
- Filter - 过滤敏感词汇(动态代理)
/** * 敏感词汇过滤器 */ @WebFilter("/*") public class SensitiveWordsFilter implements Filter { pu ...
- [Day1] 初识Nginx
一. Nginx的诞生 Nginx是一个高效的web及反向代理服务器,它的第一版发布于2012年,晚于如今占据最大市场份额的Apache.那么Nginx的诞生肩负了哪些使命呢?或者说它于Apache的 ...
- VMWare下载安装以及创建虚拟机教程
参考博客https://blog.csdn.net/qq_39135287/article/details/83993574 下载 1.打开官网https://www.vmware.com/cn.ht ...
- hive-hbase性能问题
华为负责人本来想用这种表来做大数据开发,先前就听前辈讲过性能存在问题.实际开发过程确实存在不少问题.然后放弃换方案去做了. 1.底层meta映射字段问题.默认4000,如果再做修改会涉及到挺多源码. ...
- storm运行服务器一些错误解决、
java.lang.RuntimeException: Returned channel was actually not established 重启试试 Java.lang.NoSuchMetho ...
- Leetcode179. Largest Number最大数
给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数. 示例 1: 输入: [10,2] 输出: 210 示例 2: 输入: [3,30,34,5,9] 输出: 9534330 说明: 输出结果 ...
- SpringBoot+Shiro+mybatis整合实战
SpringBoot+Shiro+mybatis整合 1. 使用Springboot版本2.0.4 与shiro的版本 引入springboot和shiro依赖 <?xml version=&q ...
- java并发系列(五)-----如何正确的关闭一个线程
正确的关闭一个线程可不是简单的事情,由于线程调度的复杂性以及不可控性(毕竟运行都由操作系统做主),先来了解一下interrupt() 1.interrupt() 根据jdk文档的介绍,如下: inte ...
- SSH 框架controller向jsp传递List jsp中使用el表达式获取
mvc可以使用ModelAndViev传递数据选择跳转的视图 controller中的代码, 把一个模拟的表单studentListSimulate传给ModelAndView @RequestMap ...