jQuery实现可以编辑的表格实例详解

2023-05-16

效果图

这里写图片描述
- 点击单个可以进行修改
- 点击修改所有的表格都可以进行修改
- 点击保存所有的数据可以获取并打印出来
- 本人demo需要引入jq文件


代码见如下(有详细的注解)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>编辑</title>
</head>
<script src="jquery-1.9.1.min.js" type="text/javascript"></script>
<style>
    p {
        text-align: center;
    }
</style>
<body>
<table id="tab" align="center" border="1">
    <tr>
        <th>编号</th>
        <th>姓名</th>
        <th>部门</th>
        <th>工号</th>
    </tr>
</table>
<p><input id="btn1" type="button" value="保存"/><input id="btn2" type="button" value="修改"/></p>
<script>
    $(document).ready(function () {
        var data = [{nub: "1", name: "Tim", apartment: "人事部", worknub: "1401"},
            {nub: "2", name: "TompSon", apartment: "咨询部", worknub: "1402"},
            {nub: "3", name: "chanel", apartment: "安保部", worknub: "1403"}]//JSon模拟数据
        var tab1 = $("#tab")//H获取表格盒子的内容
        $.each(data, function (index, item) {
            var row = $("<tr></tr>");
            $.each(item, function (name, value) {
                var td = $("<td></td>").html(value);
                row.append(td);
            });
            tab1.append(row);
        });//为表单填充对应JSon值
        $("#tab").find("tr:not(:first)").each(function () {
            $(this).children().eq("0").addClass("nub");
            $(this).children().eq("1").addClass("name");
            $(this).children().eq("2").addClass("apartment");
            $(this).children().eq("3").addClass("worknub");
        });//为每个对应的列添加class名
        $("#tab").find("td").click(function a() {
            var inputSize = $(this).find("input").size();
            if (inputSize > 0) return;
            var tdText = $(this).text();
            var inputObj = $('<input type="text" />');
            $(this).empty().append(inputObj);
            inputObj.val(tdText); //给单个td绑定单击事件,当点击时增加<input/>
            $("#tab").find("input").blur(function () {
                var inputText = $(this).val();
                $(this).parent().html(inputText);
                $(this).click(a);
            }); //当input失去焦点时,变量inputText保存当前值,清空当前父元素的内容并填充文本,在给当前td重新拥有点击事件
        });
        $('#btn2').on('click', function () {//修改-使所有框变成可编辑状态
            for (var i = $("#tab").find("td").length - 1; i >= 0; i--) {//
                console.log($("#tab").find("td")[i])
                var item = $($("#tab").find("td")[i])
                var inputSize = item.find("input").size();
                if (inputSize > 0) return;
                var tdText = item.text();
                var inputObj = $('<input type="text" />');
                item.empty().append(inputObj);
                inputObj.val(tdText); //当单击修改时,变量inputText保存当前值,
            }
        })
        $("#btn1").click(function () {
            var inputObj = $("#tab").find("input[type='text']");
            if (inputObj.size() > 0) {
                inputObj.each(function () {
                    var val = $(this).val();
                    $(this).parent().empty().html(val);
                });
            };//单击保存按钮,使其清空所有input
            var JsonText = "";
            $("#tab").find("tr:not(:first)").each(function () {
                JsonText += "{";
                $(this).find("td").each(function () {
                    JsonText += '"' + $(this).attr("class") + '":"' + $(this).text() + '",';
                });
                JsonText = JsonText.substr(0, JsonText.length - 1);
                JsonText += "},";
            });
            JsonText = JsonText.substr(0, JsonText.length - 1);
            console.log("[" + JsonText + "]");
        });    //取出数据拼接成JSon格式
    });
</script>
</body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery实现可以编辑的表格实例详解 的相关文章

  • 聊一聊什么是SaaS,以及遇到的问题......

    1 软件即服务 SaaS 的定义 SaaS是Software as a Service的缩写 xff0c 意为软件即服务 SaaS是一种软件部署模式 xff0c 第三方供应商在云基础设施上构建应用程序 xff0c 并以订阅的形式 xff0c
  • 斐波那契数列的递归优化《备忘录递归》

    暴力递归 斐波那契数列的数学形式就是递归 xff0c 直接上代码 xff1a span class token keyword public span span class token keyword static span span cl
  • SaaS多租户数据隔离的三种解决方案

    什么是SaaS xff1f SaaS是Software as a Service的缩写 xff0c 意为软件即服务 SaaS是一种软件部署模式 xff0c 第三方供应商在云基础设施上构建应用程序 xff0c 并以订阅的形式 xff0c 通过
  • 值得收藏的几个postman特色功能帮你事半功倍!

    为什么选择postman xff1f 目前市面上提供了以下几种接口测试工具 xff1a Apifox apifox的官方的定位是 xff1a Apifox 61 Postman 43 Swagger 43 Mock 43 JMeter 有桌
  • 看看大神是怎么在spring中运用设计模式的

    Spring中涉及的设计模式总结 1 简单工厂 非23种设计模式中的一种 实现方式 xff1a BeanFactory Spring中的BeanFactory就是简单工厂模式的体现 xff0c 根据传入一个唯一的标识来获得Bean对象 xf
  • JVM调参,看这一篇就够了

    文章目录 JVM相关参数调试内存相关垃圾回收器相关配置方式命令参考 JVM相关参数调试 通过实战的 方式来进行参数调试 xff0c 观察结果才能真正理解含义 xff0c 下面将通过一段代码 xff0c 来一个一个参数的进行测试 代码示例 后
  • JVM的内存结构

    JVM入门 jvm基础 什么是jvm 定义 xff1a Java Virtual Machine java 程序的运行环境 xff08 java 二进制字节码的运行环境 xff09 好处 xff1a 一次编写 xff0c 到处运行的基石自动
  • leetcode-3.无重复字符的最长子串

    给定一个字符串 s xff0c 请你找出其中不含有重复字符的 最长子串 的长度 示例 1 输入 s 61 abcabcbb 输出 3 解释 因为无重复字符的最长子串是 abc xff0c 所以其长度为 3 示例 2 输入 s 61 bbbb
  • 如何重启 Windows 10 子系统(WSL) ubuntu

    如何重启 Windows 10 子系统 xff08 WSL ubuntu WSL 子系统是基于 LxssManager 服务运行的 只需要将 LxssManager 重启即可 可以做成一个 bat 文件 net stop LxssManag
  • Mysql引擎innodb行锁的三种算法

    Mysql中的锁 基于锁的属性分类 xff1a 共享锁 排他锁 基于锁的状态分类 xff1a 意向共享锁 意向排它锁 根据锁的粒度分类 xff1a 全局锁 页锁 表级锁 行锁 xff08 记录锁 间隙锁 和临键锁 xff09 xff0c 实
  • Mysql引擎innodb的脏读,不可重复读,幻读问题

    脏读 概念 脏数据是指事务对缓冲池中行记录的修改 xff0c 并且还没有被提交 xff0c 就可能造成另一个事务读取到了另一个事务未提交的数据 xff0c 违反了数据库的隔离性 脏数据的读取 示例 xff1a 上面示例的隔离级别换成了REA
  • 自从用了checkstyle,代码一天比一天规范

    文章目录 概述特征配置checkstyle文件概述checkstyle文件的模块编写checkstyle文件引入checkstyle插件测试checkstyle 参考文档 概述 Checkstyle 是一种开发工具 xff0c 可帮助程序员
  • 数据结构系列之跳表

    什么是跳表 跳表是一种数据结构 它允许快速查询一个有序连续元素的数据链表 跳跃列表的平均查找和插入时间复杂度都是O log n xff0c 优于普通队列的O n 引题 线性表这种数据有两种具体实现 数组和链表 具体的内容之前的文章里也有说过
  • 分布式理论之CAP

    文章目录 引言1 CAP 的由来2 CAP 到底是什么2 1 C xff1a 数据一致性2 2 A xff1a 可用性2 3 P xff1a 分区容错性 3 CAP 怎么选择4 对 CAP 的常见误解6 CAP 的不足7 引申出来的 BAS
  • 优雅的处理sping项目全局异常

    全局异常处理 为了达到系统的各个模块中都能够共用同一个异常处理逻辑 xff0c 避免代码重复和错误 在Spring框架中 xff0c 可以通过全局异常处理来捕获应用程序中抛出的异常 xff0c 并根据需要进行处理 64 Controller
  • MapReduce优缺点

    优点 1 xff0e MapReduce 易于编程 它简单的实现一些接口 xff0c 就可以完成一个分布式程序 xff0c 这个分布式程序可以分布到大量廉价的PC机器上运行 也就是说你写一个分布式程序 xff0c 跟写一个简单的串行程序是一
  • ubuntu下nginx配置不生效,页面一直是默认页面welcome to nginx

    ubuntu下nginx的配置文件所在目录 xff1a etc nginx 我的问题是 监听80端口 xff1b 如果是其他的端口就是OK的 xff0c 只要一切换到80端口 xff0c 就自动是默认页面welcome to nginx 我
  • 埋点统计

    body 监听点击时间 但是要计算点击位置 开源的系统countly页面热区统计百度埋点诸葛io xff0c 易观方舟第三方https zhuanlan zhihu com p 65834362https github com 534591
  • 从零搭建vue 项目(一)

    从零搭建vue 项目 xff08 一 xff09 我的博客 代码地址 代码地址 首先4个官方文档 VueVue CLIVue RouterVuex 创建vuedemo的项目 npx 64 vue cli create vuedemo spa
  • ubuntu 18.04 桌面安装 tasksel aptitude failed (100) 问题修复

    ubuntu 18 04 桌面无法启动 xff0c 可能是安装远程桌面时搞坏了图形桌面的配置 因为实在百度不到具体出错的文件和相关配置 只能删除了桌面系统 然后问题来了 xff0c sudo apt install ubuntu desk

随机推荐

  • react+ts+mobx+router+antd

    安装 npx create react app my app template typescript span class token comment or span yarn create react app my app templat
  • React 的 一路记忆

    React 整体刷新 组件 43 单项数据流 React组件 1 React组件一般k提供方法f而是某种状态机 2 React组件可以理解q一o纯函数 3 单向数据绑定 受控组件 vs 非受控组件 受控组件 xff1a 表单元素状态由使用者
  • VSCode中的git使用篇

    基本上使用 在一个目录下clone项目 xff1b span class token function git span clone XXXXXX git 使用VScode 打开项目 右击通过Code打开 使用vscode提交代码 打开下面
  • 重读HTML

    HTML xff08 超文本标记语言 xff09 初识HTMLHTML 元素大体分14类怎么使用1 HTML 标签里的元素名不区分大小写2 闭合标签3 非闭合标签 语义化标签语法基本语法标签语法文本语法注释语法ProcessingInstr
  • 微信小程序从入门到放弃(一)

    微信小程序新手遇见的问题 目录 用 TOC 来生成目录 xff1a 微信小程序新手遇见的问题 目录wxrequest数据请求失败请求豆瓣电影数据报错不在以下合法域名列表内请参考文档元素的显示隐藏hidden和wxif wxif vs hid
  • 微信小程序从入门到放弃(二)

    手机上预览不到图片 原因 xff1a 图片放到本地image文件内 xff0c 且设置为背景图片 xff0c 例如一些小的图片在手机上预览不到图片 xff0c 而在微信开发者工具上可以预览到 xff0c 解决方法 xff1a 将一些图标字体
  • 微信小程序从入门到放弃(三)

    空格无法使用 打出空格 xff1a amp nbsp 在微信小程序无法使用只是一个字符串 br n 等转义字符无法使用 解决方法 xff1a 使用中文全角打出空格即可 手机预览不到图片 1 讲所有的图片 xff0c 目录确定一遍 xff0c
  • 微信小程序从入门到放弃(四)

    swiper组件的使用 官方链接 swiper官方链接 可以设置上下滚动 vertical 为true xff0c 可以设置为上下滚动 xff1b false左右滚动 xff1b 无缝滚动 circular 为true xff0c 可以设置
  • 微信小程序从入门到放弃(五)

    一 字体的大小 font size 像素单位rpx与px的差别 lt view style 61 34 font size 30px 34 gt 我是汉字font size 30px lt view gt br lt view style
  • 微信小程序从入门到放弃(六)

    微信小程序wx hideLoad 安卓不兼容问题 当频繁进行数据交互的时候 xff0c 加载动画 xff0c 在安卓上的时候 xff0c hideLoad xff0c 不能执行 xff0c 使showLoad xff08 xff0c 一直在
  • WIN10的MD5命令

    windows方法 xff1a win键 43 r键输入cmd调出命令行 输入 xff1a 查看MD5值 xff1a certutil hashfile 文件名 MD5 查看 SHA1 certutil hashfile 文件名 SHA1
  • css3样式效果

    一 盒子内圆角 效果图 css样式代码 xff1a width 300px br height 200px br background radial gradient circle at top left transparent 28px
  • 3D背景图动画阴影效果

    先看效果图 原理rotate的使用 当鼠标放到图片的一角处的时候 xff0c 实现该处向下坍缩的效果 xff0c 即用的是rotate的3D属性 xff0c 此时的图片向相应的方向的进行偏转 xff0c 偏转的角度x xff0c y如下图所
  • Vue遇到的bug-01(vue引擎模板报错)

    vue结合webpack的使用 01 报错信息 xff1a 如下图 xff08 配置文件格式错误 xff09 错误的代码 xff1a 如下图 报错信息显示的是配置文件错误 xff08 报错信息的最后一句话是 loaders should b
  • 百度地图API支持HTTPS

    百度地图怎么样才能支持API支持HTTPS 报错信息如下 xff1a Mixed Content The page at https www c 8 com public admin index index html was loaded
  • 数组Array、对象Object、json格式常用的方法小结。

    一 对象Object常用方法 1 初始化方法 var obj 61 var obj 61 new obj var obj 61 Object create null 2 添加元素的方法 dic key 61 value 3 删除key的方法
  • 微信小程序动画特效

    效果 代码见下 xff1a 启动的一瞬间字体在跳动 xff0c 星空在不停的旋转 wxml代码 lt pages welcome welcome wxml gt br lt view class 61 34 stars 34 gt br l
  • 放大镜插件etalage的使用方法

    效果图 如果有人需要etalage的话 xff0c 可以给我留言 xff1b 官方链接Etalage 下载位置 xff1a github 1 使用方法 安装js xff0c css xff0c 文件 xff0c 分别是 xff1a 1 xf
  • 日期插件layDate的使用

    效果图 官方链接 1 layui中的laydate 官方链接 2 贤心的layui 使用说明 只需引入 laydate js 即可HTML结构 lt input span class hljs keyword type span 61 sp
  • jQuery实现可以编辑的表格实例详解

    效果图 点击单个可以进行修改 点击修改所有的表格都可以进行修改 点击保存所有的数据可以获取并打印出来 本人demo需要引入jq文件 代码见如下 xff08 有详细的注解 xff09 span class hljs doctype lt DO