js添加一行、删除一行

                                                    let str="<tr>"
+"<td>"+a[1]+"</td>"
+"<td>"+p_money+"</td>"
+"<td>"+b_money+"</td>"
+"<td ><span onclick=\"delTab('"+a[0]+"',this)\" style=\"color: blue;cursor:pointer;\">删除</span></td>"
+"</tr>";
$("#tab").append(str);
   function delTab(id,obj){
ids=ids.replace(id+"#", "");
var tr=obj.parentNode.parentNode;
var tbody=tr.parentNode;
tbody.removeChild(tr);
}

js获取多少行 多少列   以及获取数据

                  //获取表格对象;
let tab = document.getElementById("tab");
//获取表格所有行数;
let tablRows = tab.rows.length;
let args="";
for(let i=1;i<tablRows;i++){
for(let j=1;j<tab.rows[i].cells.length-1;j++){
args+=tab.rows[i].cells[j].innerText+"#";
}
args+=",";
}

根据单元格获取行号

        console.log(obj.parentNode.parentNode.rowIndex);

添加  、删除、上移、下移 案例代码

        function add(){
let pjc=$("#pjc").val();
$("#pjc").val("");
//获取表格对象;
let tab = document.getElementById("mytab");
//获取表格所有行数;
let tablRows = tab.rows.length;
if(tablRows>=){
alert("最多只能添加10条");
return;
}
if(pjc){
if(tablRows==){
let str="<tr>"
+"<td>"+pjc+"</td>"
+"<td ><span onclick=\"delTab(this)\" style=\"color: blue;cursor:pointer;\">删除</span></td>"
+"</tr>";
$("#mytab").append(str);
}else if (tablRows==) {
tab.rows[].cells[].innerHTML="<span onclick=\"delTab(this)\" style=\"color: blue;cursor:pointer;\">删除</span>"
+"<span onclick=\"toBut(this)\" style=\"color: blue;cursor:pointer;margin-left: 10px;\">下移</span>";
let str="<tr>"
+"<td>"+pjc+"</td>"
+"<td ><span onclick=\"delTab(this)\" style=\"color: blue;cursor:pointer;\">删除</span>"
+"<span onclick=\"toTop(this)\" style=\"color: blue;cursor:pointer;margin-left: 10px;\">上移</span>"
+"</td>"
+"</tr>";
$("#mytab").append(str);
}else { let a= tab.rows[tablRows-].cells.length-;
tab.rows[tablRows-].cells[a].innerHTML="<span onclick=\"delTab(this)\" style=\"color: blue;cursor:pointer;\">删除</span>"
+"<span onclick=\"toTop(this)\" style=\"color: blue;cursor:pointer;margin-left: 10px;\">上移</span>"
+"<span onclick=\"toBut(this)\" style=\"color: blue;cursor:pointer;margin-left: 10px;\">下移</span>"; let str="<tr>"
+"<td>"+pjc+"</td>"
+"<td ><span onclick=\"delTab(this)\" Opstyle=\"color: blue;cursor:pointer;\">删除</span>"
+"<span onclick=\"toTop(this)\" style=\"color: blue;cursor:pointer;margin-left: 10px;\">上移</span>"
+"</td>"
+"</tr>";
$("#mytab").append(str);
}
} } function toTop(obj) {
//获取表格对象;
let tab = document.getElementById("mytab");
let rows= obj.parentNode.parentNode.rowIndex;
let rows2=rows-;
let html1=tab.rows[rows].cells[].innerHTML;
let html2=tab.rows[rows2].cells[].innerHTML;
tab.rows[rows].cells[].innerHTML=html2;
tab.rows[rows2].cells[].innerHTML=html1;
} function toBut(obj) {
//获取表格对象;
let tab = document.getElementById("mytab");
let rows= obj.parentNode.parentNode.rowIndex;
let rows2=rows+;
let html1=tab.rows[rows].cells[].innerHTML;
let html2=tab.rows[rows2].cells[].innerHTML;
tab.rows[rows].cells[].innerHTML=html2;
tab.rows[rows2].cells[].innerHTML=html1;
} function delTab(obj){
//获取表格对象;
let tab = document.getElementById("mytab");
//获取表格所有行数;
let tablRows = tab.rows.length;
var tr=obj.parentNode.parentNode;
let rows= obj.parentNode.parentNode.rowIndex;
var tbody=tr.parentNode;
tbody.removeChild(tr);
if(tablRows==){
tab.rows[].cells[].innerHTML="<span onclick=\"delTab(this)\" style=\"color: blue;cursor:pointer;\">删除</span>";
}else if(tablRows==){
if(rows+==){
tab.rows[].cells[].innerHTML="<span onclick=\"delTab(this)\" style=\"color: blue;cursor:pointer;\">删除</span>"
+"<span onclick=\"toTop(this)\" style=\"color: blue;cursor:pointer;margin-left: 10px;\">上移</span>";
}else if(rows==){
tab.rows[].cells[].innerHTML="<span onclick=\"delTab(this)\" style=\"color: blue;cursor:pointer;\">删除</span>"
+"<span onclick=\"toBut(this)\" style=\"color: blue;cursor:pointer;margin-left: 10px;\">下移</span>";
} }else if(tablRows>=4){
if(rows+==tabRows){
tab.rows[rows-1].cells[].innerHTML="<span onclick=\"delTab(this)\" style=\"color: blue;cursor:pointer;\">删除</span>"
+"<span onclick=\"toTop(this)\" style=\"color: blue;cursor:pointer;margin-left: 10px;\">上移</span>";
}else if(rows==){
tab.rows[].cells[].innerHTML="<span onclick=\"delTab(this)\" style=\"color: blue;cursor:pointer;\">删除</span>"
+"<span onclick=\"toBut(this)\" style=\"color: blue;cursor:pointer;margin-left: 10px;\">下移</span>";
}
} }

js操作表格、table、的更多相关文章

  1. js操作表格

    js 操作table: insertRow(),deleteRow(),insertCell(),deleteCell()方法 表格有几行: var trCnt = table.rows.length ...

  2. js 操作表格行数的删减

    沉溺了好几个月了,自从年假回来就一直在忙换工作的事情: 新环境.新同事,一如既往的工作, 那么闲话不多说,前两天师妹问我要一个类似于添加和删除的demo:闲暇时间我就参照一些代码写了一下, (发现有错 ...

  3. 用js操作表格

    效果图: 任务: 1. 鼠标移到不同行上时背景色改为色值为 #f2f2f2,移开鼠标时则恢复为原背景色 #fff var tr=document.getElementsByTagName(" ...

  4. JS 将表格table导出excel

    function tableToExcel(id) { var tb = document.getElementById(id); var html = '<html><head&g ...

  5. DOM系列---DOM操作表格

    DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本篇章主要了解一下DOM操作表格. 一.操作表格 <table>标签是H ...

  6. 第一百一十五节,JavaScript,DOM操作表格

    JavaScript,DOM操作表格 学习要点: 1.操作表格 DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本章主要了解一下DO ...

  7. JavaScript(第二十天)【DOM操作表格及样式】

    DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本章主要了解一下DOM操作表格和样式的一些知识. 一.操作表格 <table& ...

  8. JavaScript--DOM操作表格及样式(21)

    一 操作表格 // <table>标签是HTML中结构最为复杂的一个,我们可以通过DOM来创建生成它,或者HTMLDOM来操作它; // 使用DOM来创建表格; var table = d ...

  9. DOM 操作表格

    操作表格<table>标签是 HTML 中结构最为复杂的一个,我们可以通过 DOM 来创建生成它,或者 HTML DOM 来操作它.(PS:HTML DOM 提供了更加方便快捷的方式来操作 ...

随机推荐

  1. MySQL里默认的几个库是干啥的?

    本文涉及:MySQL安装后自带的4个数据库:information_schema. performance_schema.sys.mysql的作用及其中各个表所存储的数据含义 information_ ...

  2. vue-cli项目中使用vw——相比flexible更原生的移动端解决方案

    安装命令行输入: yarn add postcss-px-to-viewport 或 npm i postcss-px-to-viewport -save -dev 配置package.json中,在 ...

  3. 工具sublime安装

    默认安装后是英文版 view-show console 安装packagecontrol https://packagecontrol.io/installation ctrl+`打开控制台,输入代码 ...

  4. 使用DES算法实现加密解密

    使用DES算法实现加密解密 我们常见的加密算法有DES.MD5.IDEA.AES等等,这篇随笔介绍使用DES算法实现加密解密 首先介绍一下DES算法: DES算法为密码体制中的对称密码体制,又被称为美 ...

  5. FFMPEG SDK 开发介绍(原创)

    来源:http://blog.sina.com.cn/s/blog_62a8419a01016exv.html 本文是作者在使用ffmpeg sdk开发过程中的实际经验,现在与大家分享,欢迎学习交流. ...

  6. LINUX基础学习之基础命令(4)和 文件的inode信息 --2019-11-28

    一.inode是什么? 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统读取硬盘的时候,不会 ...

  7. C#程序保存dump文件

    作用 程序异常崩溃前使用此类为进程创建DUMP文件,之后可以使用WinDbg等工具进行分析. 辅助类代码 using System; using System.Diagnostics; using S ...

  8. 201671010438王奕晗实验十四 团队项目评审&课程学习总结

    个人学习总结博客 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 作业学习目标 完成个人软件心得总结 一.结合本学期课程学习内容,对比<实验一 软件工 ...

  9. CodeForces - 1037H: Security(SAM+线段树合并)

    题意:给定字符串S:  Q次询问,每次询问给出(L,R,T),让你在S[L,R]里面找一个字典序最小的子串,其字典序比T大. 没有则输出-1: 思路:比T字典序大,而且要求字典最小,显然就是在T的尾巴 ...

  10. stm32软件编程的框架及注意事项——rtos篇

    0.通常,嵌入式软件(这里指单片机系统)的框架千变万化,有带rtos的,也有裸机的. 0.1.写过带系统的,也写过裸机的,这里总结一下两个类型的框架,记录下自己的心得,主要是文字描述,框架图可以后期添 ...