纯js增删改查页面

纯JS+HTML+CSS实现表格增删改查翻页--模板文件管理 纯JS+HTML+CSS实现简单表格增删改查 阅读详情

方便增删改查页面写来写去,一次行解决,里面全用Ajax实现交互。

001 js夹,myjs0.js代码:
002 function view(object){
003                 var table=document.getElementById("table1");
004                 table.ondblclick=function(event){
005                     return insert(event);
006                 };
007                 table.onclick=updata;
008                 var divfirst=document.getElementById("divfirst");
009                 var table1_tbody=table.lastChild;
010                 var children=table1_tbody.childNodes;
011                 if(divfirst.style.display=="none"){
012                     divfirst.style.display="";
013                     object.innerHTML="-菜单栏";
014                     for(var i=0;i<children.length;i++){
015                         if(i==0){
016                             var td=document.createElement("td");
017                             td.innerHTML="操作栏";
018                             td.id="title";
019                             children[i].appendChild(td);
020                         }else if(children[i].nodeName.toLowerCase() =="tr"){
021                             var td=document.createElement("td");
022                             td.innerHTML="<span style='cursor:pointer;color:#0000AA' onclick='deleteSingle(this)'>删除</span>";
023                             //td.name="program";
024                             children[i].appendChild(td);
025                         }
026                     }
027                 }else{
028                 //保存更改值
029                     var inserts=document.getElementsByName("insert");
030                     if(inserts.length>0){
031                         var value=document.getElementById("indextext").value;
032                         var td=inserts[0].parentNode
033                         var id=td.parentNode.id;
034                         var flag=true; 
035                         if(value!=inserts[0].value){
036                             //ajax,得到flag值
037                             value=inserts[0].value;
038                             alert("我要Ajaxle ");
039                         }
040                         if(flag){
041                             td.innerHTML=value;
042                         }                  
043                     }
044                     //保存新增的值
045                     var tbody_last=table1_tbody.lastChild;
046                     while(true){
047                         if(tbody_last.nodeName.toLowerCase()=="tr") break;
048                         tbody_last=tbody_last.previousSibling;
049                     }
050                     while(true){
051                         if(tbody_last.nodeName.toLowerCase()=="tr"&&tbody_last.lastChild.lastChild.innerHTML=="保存"){
052                             save(tbody_last.lastChild.lastChild);
053                             tbody_last=tbody_last.previousSibling;
054                         }else{break;}
055                     }
056                      
057                      
058                     for(var i=0;i<children.length;i++){
059                         if(children[i].nodeName.toLowerCase() =="tr"){
060                             children[i].removeChild(children[i].lastChild);
061                         }
062                     }
063                     divfirst.style.display="none";
064                     object.innerHTML="+菜单栏";
065                      
066                 }
067                  
068             }
069              
070             function addrow(){
071                 var table_tbody=table1().lastChild;
072                  
073                 var s=document.getElementsByName("save");
074                 if(s.length>0){
075                     var object=s[0];
076                     save(object);
077                 }
078              
079                 var table_tbody_second=table1().lastChild.firstChild.nextSibling;
080                 var newtr=document.createElement("tr");
081                 var children=table_tbody_second.childNodes;
082                 var mir=0;
083                 var pname=names();
084                 for(var i=0;i<children.length;i++){
085                      
086                     if(children[i].nodeName.toLowerCase()=="td"){
087                         if(mir==pname.length){
088                             newtr.innerHTML+="<td><span style='cursor:pointer;color:#0000AA' onclick='save(this)' name='save'>保存</span></td>";
089                         }else if(mir==0){
090                             newtr.innerHTML+="<td></td>";//"<input type='checkbox' name='id'/>"
091                              
092                         }else{
093                             newtr.innerHTML+="<td><input type='text' name='"+pname[mir]+"'/></td>";
094                         }
095                         mir++;
096                     }
097                 }
098                 //table_tbody.insertBefore(table_tbody_second,newtr);
099                 table_tbody.appendChild(newtr);
100                 //alert(newtr.innerHTML);
101             }
102          
103         function save(object){
104          
105             var tr=object.parentNode.parentNode;
106             var td=tr.firstChild;
107             var flag=true;
108             var string="";
109             var id=null;
110              
111             while(td){
112                 td=td.nextSibling;
113                 if(td==null) break;
114                 var input=td.firstChild;
115                 if(input.nodeName.toLowerCase()=="input"){
116                     string+=input.name+":"+input.value+","
117                     continue;
118                 }
119             }
120             var json="{"+string.substring(0,string.length-1)+"}";
121             alert(json)
122             //执行ajax(input.name:input.value) 返回id和其它值,定义一个flag,判读是否再执行后面的句子,
123             if(flag==true){
124                 td=tr.firstChild;
125                 td.innerHTML="<input type='checkbox' name='id' value='"+id+"'/>";
126                 while(td){
127                     td=td.nextSibling;
128                     if(td==null) break;
129                     var input=td.firstChild;
130                     if(input.nodeName.toLowerCase()=="input"){
131                         td.innerHTML=input.value;
132                         continue;
133                     }
134                     if(input.nodeName.toLowerCase()=="span"&&flag==true){
135                         td.innerHTML="<span style='cursor:pointer;color:#0000AA' onclick='deleteSingle(this)'>删除</span>";
136                     }
137                 }
138             }
139         }
140 function table1(){
141     return document.getElementById("table1");
142 }
143 function names(){
144     var name = [];
145     var tr=document.getElementById("hiddentr");
146     var tr_children=tr.childNodes;
147     for(var i=1;i<tr_children.length-1;i++){
148         if(tr_children[i].nodeName.toLowerCase()=="td"){
149             name.push(tr_children[i].innerHTML);
150         }
151     }
152     return name;
153 }
154 function insert(event){
155                 var evt=window.event||event;
156                 var td=evt.srcElement||evt.target;
157                 var value=null;
158                 if(td.nodeName.toLowerCase()!="span"&&td.id!="title"){
159                     if(td.childNodes.length>0){
160                         //alert(td.firstChild.nodeName.toLowerCase());
161                         if(td.firstChild.nodeName.toLowerCase()!="span"){
162                             value=td.innerHTML;
163                             td.innerHTML="<input type='text' name='insert' value='"+td.innerHTML+"'/>";
164                         }
165                     }else{
166                         value=td.innerHTML;
167                         td.innerHTML="<input type='text' name='insert' value='"+td.innerHTML+"'/>";
168                     }
169                 }
170                 document.getElementById("indextext").value=value;
171                 return value;
172             }
173             function updata(event){
174             //alert(value+"bbb")有一个方案还为解决,当单元格数据不变的时候,应该不响应,现在无法获得之前的值..我增加了一个indextext作为比较,无奈之举,顺便做了一个重置
175                 var evt=window.event||event;
176                 var td=evt.srcElement||evt.target;
177                 var insert=document.getElementsByName("insert");
178                 if(insert.length>0&&td!=insert[0]){
179                     var td=insert[0].parentNode;
180                     var value=insert[0].value;
181                     var id=td.parentNode.id;
182                     var flag=true;
183                     if(value!=document.getElementById("indextext").value){
184                         //ajax,得到flag值
185                         alert("我要Ajaxle ");
186                     }
187                     if(flag){
188                         td.innerHTML=value;
189                     }                  
190                 }
191             }
192             function selectAll(){
193                 var databox =document.getElementsByName("id");
194                 var lastbox=document.getElementById("lastbox");
195                 lastbox.checked=!lastbox.checked;
196                 var flag=lastbox.checked;
197                 for(var i=0;i<databox.length;i++){
198                     databox[i].checked=flag;
199                 }
200             }
201             function inverseselect(){
202                 var databox =document.getElementsByName("id");
203                 for(var i=0;i<databox.length;i++){
204                     databox[i].checked=!databox[i].checked;
205                 }
206             }
207             function deleteAll(){
208                 var databox =document.getElementsByName("id");
209                 for(var i=0;i<databox.length;i++){
210                     if(databox[i].checked==true){
211                     var id=databox[i].value;
212                     //dao AJAX里面成功删除后再删除节点。这里用来测试端页面
213                     var tr= databox[i].parentNode.parentNode
214                     //或者 var tr=docuemnt.getElementById(databox[i].value);
215                     tr.parentNode.removeChild(tr);
216                     i--;
217                     }
218                 }
219             }
220             function deleteSingle(object){
221                 var tr=object.parentNode.parentNode;
222                 var id=tr.id;
223                 //AJAX里面成功后,再删除节点。这里用来测试端页面
224                 tr.parentNode.removeChild(tr);
225             }
226             function resetValue(){
227                 var insert=document.getElementsByName("insert");
228                 if(insert.length>0){
229                     insert[0].value=document.getElementById('indextext').value;
230                 }
231             }
232          
233  
234 HTML,页面代码:
235 <html>
236     <head>
237         <title>biao1</title>
238         <meta http-equiv="Content-Type" content="text/html;charset=gbk"/>
239         <meta http-equiv="pragma" content="no-cach" />
240         <script type="text/javascript" src="js/jquery-1.4.4.js"></script>
241         <script type="text/javascript" src="js/Myjs0.js"></script>
242         <script>
243              
244         </script>
245     </head>
246     <body>
247         <form method="get" action="#" name="frm1">
248         <span style="cursor:pointer;color:#0000AA"onclick="javascript:view(this)">+菜单栏</span>&nbsp;
249         <div id="divfirst" style="display:none">
250                 <input type="checkbox" id="lastbox" disabled >
251                 <span style=" cursor:pointer;color:#0000AA"onclick="selectAll()">【全选】</span>&nbsp;
252                 <span style="cursor:pointer;color:#0000AA"onclick="inverseselect()">【反选】</span>&nbsp;
253                 <span style=" cursor:pointer;color:#0000AA"onclick="deleteAll()">【删除】</span>&nbsp;
254                 <span style="cursor:pointer;color:#0000AA"onclick="addrow()">【添加】</span>&nbsp;
255                 <span style="color:#0000AA">
256                 <input type='text' id='indextext' disabled></input>
257                 <input type='button' style="cursor:pointer;color:#0000AA"onclick="resetValue()" value="【重置】"/></span>&nbsp;
258         </div>
259         <div>
260             <table id="table1" border=1px style="border-collapse:collapse;color:#00AA00">
261                 <th id="firsttr" name="firsttr">
262                     <th width='153' id="title">as</th><th width='153'id="title">sa</th><th width='153' id="title">ee</th><th width='153'id="title">ds</th><th width='153' id="title">ca</th>
263                 </th>
264                 <tr id="hiddentr" style="display:none">
265                     <td>id</td><td>name</td><td>age</td><td>gendar</td><td>birthday</td><td>discript</td>
266                 </tr>
267                 <tr>
268                     <td id="1_1" ><input type="checkbox" name="id"/></td><td id="1_2">2</td><td id="1_3">3</td>
269                     <td id="1_4">4</td><td id="1_5">5</td><td id="1_6">6</td>
270                 </tr>
271                 <tr>
272                     <td id="2_1"><input type="checkbox" name="id"/></td><td id="2_2"></td><td id="2_3"></td><td id="2_4"></td><td id="2_5"></td><td id="1_6">6</td>
273                 </tr>
274             </table>
275         </div>
276         </form>
277     </body>
278 </html>
javascript实现增删改查 增删改查 增删改查对于学前端的来说,可以说是必修课,在很多的网站中都会遇见这种功能,那么今天,我们就来看看如何使用js来实现正删改查。 首先,我们先模拟一个后台数据,如下: var data = [ { "0":"李白", "1":"男", "2":"12", "3":"123456", "4":"我是李白" }, { "0":"小乔", "1":"女", "... 阅读详情

相关推荐

简单html增删改查

简单html增删改查,适合初学者使用.包含两个文件

js数组中添加、删除、更改、查询元素方法

日常总结

qq_44438941的博客 3527

js实现增删改查

利用原生js实现增删改查操作 附带多样效果,打包分享,仅供参考

JavaScript:DOM 操作 增、删、改、查 详解(用法 + 例子 + 代码)

本文介绍js中的dom操作,用于html元素对象的增、删、改、查。包含用法、例子、效果、代码。

Cosmoshhhyyy的博客 1266

html最简单的增删改查实现方式

用js实现的一个增删改查,给学校javascript的同学用

JavaScript 实现HTML DOM增删改查操作的常见方法详解

主要介绍了JavaScript 实现HTML DOM增删改查操作,结合实例形式分析了JavaScript针对HTML DOM元素增删改查常见操作技巧与使用注意事项,需要的朋友可以参考下

js数组的增删改查,十二种方法(含代码)

​让我为大家介绍一下数组的增删改查的方法吧!

m0_74577714的博客 3665

JS实现数组的增删改查操作示例

本文实例讲述了JS实现数组的增删改查操作。分享给大家供大家参考,具体如下: 1、给原数组中 新增 用到 push 改变原数组的长度并返回新的长度,新元素添加在原数组的末尾 <doctype> <html> <head>元素新增数组</head> <body> <div id=dem>点击会给原素组末尾新增元素个数</div> <button onclick=funct()>点击</button> [removed] var app = [001,002,002]; function fu

JS增删改查

js做动态增删改查 在学习js以后我们可以模拟后端,实现动态的页面增删改查 设计前端页面 完善基础样式 写增删改查的方法 index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <link href="index.css" rel="stylesheet" type="text/css"/> </

qq_45809464的博客 2558

微信支付V2,jsapi支付拉起收银台报错:调用支付JSAPI缺少参数:total_fee

拉起收银台报错

m0_54355172的博客 3873

MT9V034摄像头学习笔记(一)_mt9v034摄像头循迹代码(1)

函数名称:uint8_t SCB_RegRead(uint8_t Device,uint8_t Address,uint16_t *Data)* 函数名称:uint8_t SCB_RegWrite(uint8 Device,uint8 Address,uint16 Data)* 函数名称:uint8 SCCB_SendByte(uint8 Data)* 函数名称:uint8 SCCB_ReadByte(void)* 修改时间:2018年3月4日。* 修改时间:2018年3月4日。

2401_87555661的博客 908

JavaScript 增删改查

实现 JavaScript 增删改查 htmlhtmlhtml 代码 <div class="container"> <div class="topview"> <div class="btnview" onclick="add"> <text>增加</text> </div> <div class="btnview" onclick="delall"

mamayf的博客 1015

UE5.6使用ndisplay,单窗口多画面(单机部署),配置、打包流程,无需switchboard

摘要:本文介绍了在UE5.6中使用ndisplay插件的完整流程。首先需要开启ndisplay和launch插件,创建ndisplay配置文件并设置本地单窗口多画面模式。随后通过Process Explorer获取启动命令用于制作bat文件。打包项目时需删除场景中的ndisplay文件,但保留内容浏览器中的配置,并设置为开发版打包。最后将ndisplay文件导出为.ndisplay格式,与bat文件一起放置在打包目录下,通过bat启动程序。注意修改路径和窗口大小时需保持纯英文路径,且bat代码需保持单行格式

weixin_43912248的博客 977

Vue.js进阶【3】纯Vue实现单页面-列表增删改查

增删改查最能代表一个技术的完备性的,下面就展示Vue的增删改查,为了界面的美观实用了bootstrap 仔细阅读下面的代码,即可领会其意思。不懂的标签和元素百度查一下一查一大堆。很快就可以理解了 运行:直接右键HTML文件选择谷歌浏览器打开即可 运行效果 逻辑:全都是客户端自己提供数据,与服务端没有交互 列表增删改查 ...

m0_43447321的博客 955

淘特App x-sign参数逆向实战:从抓包到算法定位

本文详细解析了淘特App的x-sign参数逆向过程,从抓包分析到算法定位,涵盖了使用jadx-gui进行静态分析、Frida动态Hook验证以及Native层算法还原等关键技术。文章重点介绍了x-sign参数的生成机制及其在阿里系应用中的安全防护策略,为逆向工程师提供了实用的调试技巧和对抗策略。

5b6n7m8的博客 229

TwinCAT 3 实战:手把手教你用PLC和C++读写第三方伺服驱动器的CoE参数

本文详细介绍了在TwinCAT 3环境中通过PLC和C++两种技术路线实现对第三方伺服驱动器CoE参数的精准操控。从环境准备到具体实现,包括硬件配置、核心函数使用及性能优化策略,为工程师提供了全面的实战指南。特别针对CoE参数访问的效率和稳定性问题,给出了实用的调试技巧和异常处理方案。

weixin_33743248的博客 444

纯JS+HTML简单表格增删改查

首先这两天写的一个简单增删改查,基本上靠百度和自学,完成的这个作业。 里面的功能十分的简陋,对于有需要的朋友一点点帮助吧。 这不是一条通往项目的链接:https://pan.baidu.com/s/1Xk17hyeQbcYcU5it_wFA6w 密码:030a 里面有一些前期练习,如果心急,那就直接看index4.html吧,那是此次的网页实现,js文件放在js文件夹下。 然后,先给大家看......

hikktn的博客 4万+

宇树G1双足机器人SLAM开发环境搭建实战指南

SLAM(同步定位与建图)是机器人自主导航的核心技术。在双足人形机器人平台上,由于运动模型复杂、机身晃动带来高频IMU噪声,SLAM开发对环境配置和依赖管理提出了更高要求。以宇树G1为例,系统阐述如何通过Ubuntu 20.04、ROS Noetic与Docker容器化方案构建可复现的SLAM开发环境。先介绍依赖分层管理与版本锁定原理,再深入catkin工作空间编译、传感器驱动集成、网络与多机通信配置等工程实践,最后提供常见问题排查与避坑指南。这套方法论不仅适用于G1,也可迁移至其他双足或轮式机器人平台,帮

weixin_32025789的博客 268

JavaScript - 纯js写一个对表格的简单增删改查操作

功能: 新增表格数据, 修改表格数据, 删除表格数据。 不完善区: 删除数据之后序号没有做处理 ,表单验证简单的提示警告, 没有文字提醒。 界面: 在线查看 下面是代码: &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;me

tian_tian_gong的博客 3108

《大数据最全面试题-Offer直通车》目录

做好这些不用担心试用期不通过:程序员入职新公司如何快速上手项目本人遇到大数据面试题和参考答案(超过1万字精华版)大数据面试英文自我介绍参考(万字长文)大数据运维应用场景面试题汇总及参考答案(持续更新)万字数据仓库面试题及参考答案数据仓库数据质量监控和处理方法最佳实践数据仓库建模方法万字详解Doris的3种数据模型详解和数据仓库每一层的模型选用大数据面试临阵磨枪不知看什么?看这份心理就有底了-大数据常用技术栈常见面试100道题最全Hive面试题2024年(2万字详解)Elasticsearch 面试题及参考答

大模型大数据攻城狮的专栏 2645

基于STM32、HAL库的CH9434总线转UART驱动程序设计

CH9434是一款USB转4串口控制芯片,可以将单个USB接口扩展为4个独立的串口(UART)。支持多种数据格式(数据位5-8,停止位1/1.5/2,奇偶校验或无校验)// 读取接收到的数据。// 重新启动接收中断。// 向所有4个串口发送数据。// UART初始化函数示例(USART1)// 其他UART初始化函数类似...// 初始化CH9434。// 初始化UART1。// 初始化UART2。// 初始化UART3。// 初始化UART4。工作电压:3.3V/5V兼容。

corlin6688的博客 990

vue+elementUI 表格增删改查

看到网上的增删改查度用了接口,但是这个我没接触,不太懂;还有其他的增删改查是前后台结合,认为这个的增删改查很棒也好写点。 我写的这个增删改查是纯前端的,无接口,无后台。若之后写了在更新 1、删:选中一行数据,然后进行删除 HTML: <el-button size="mini" ype="danger" @click="handleDelete(scope...

dengdengchen的博客 2万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

纯javascript实现增删改查

效果图: html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>粤菜字典admin</title> </head> <script type="text/javascript" src="js/js.js" ></script> <body> <table border="1" cel

jiangyang112233的博客 1282

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

用 JS(JavaScript )实现增删改查

JS小例题学习内容:需求总结: 学习内容: 需求 用 JavaScript 实现简单增删改查 实现代码 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UT

zzvar的博客 7314

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

JavaScript - Jquery+Bootsrap纯前台 表格增删改查操作

界面: bootstrap JavaScript框架 :Jquery 练习: 节点操作。 效果图: 在线查看 源码: &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="vie

tian_tian_gong的博客 969
上一篇: RISC和CISC的区别
下一篇: 在 Windows 上安装和使用 GNUstep 和 Objective-C
meng0911
博客等级 码龄15年 15粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值