基于jQuery的动态增删改查表格信息,可左键/右键提示(原创自Zjmainstay)

下面我将为您详细讲解“基于jQuery的动态增删改查表格信息,可左键/右键提示(原创自Zjmainstay)”的完整攻略。

什么是动态增删改查表格信息

动态增删改查表格信息指的是通过使用jQuery等前端框架,实现在页面上展现一张表格,并通过添加、删除、修改和查询等操作,动态地对表格中的数据进行增删改查。这一功能的实现可以让用户更加方便地查看和操作页面上的数据。

实现动态增删改查表格信息的步骤

下面我将为您介绍实现动态增删改查表格信息的步骤。

1. 准备HTML结构

首先需要准备HTML结构,其中包括表格的基本结构和用于输入数据的表单等。

<table id="mytable">
  <thead>
    <tr>
      <th>姓名</th>
      <th>年龄</th>
      <th>操作</th>
    </tr>
  </thead>
  <tbody></tbody>
</table>

<form>
  <label for="name">姓名:</label>
  <input type="text" id="name" name="name">
  <label for="age">年龄:</label>
  <input type="text" id="age" name="age">
  <input type="button" value="添加" id="add">
</form>

2. 配置jQuery

需要在页面中引入jQuery库,并编写jQuery代码实现增删改查的操作。

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

<script>
  $(function() {
    // 在这里编写增删改查等操作代码
  });
</script>

3. 实现动态增加数据

可以在“添加”按钮的click事件中,获取表单中的数据,并将数据添加到表格中,从而实现动态增加数据。示例代码如下:

$('#add').click(function() {
  var name = $('#name').val();
  var age = $('#age').val();
  if (!name || !age) return;
  var tr = '<tr><td>'+ name +'</td><td>'+ age +'</td><td><a href="javascript:" class="delete">删除</a></td></tr>';
  $('#mytable tbody').append(tr);
});

4. 实现动态删除数据

可以将表格中每一行的删除按钮的click事件委托给父元素,从而实现动态删除数据。示例代码如下:

$('#mytable tbody').on('click', '.delete', function() {
  $(this).closest('tr').remove();
});

5. 实现动态修改数据

可以将表格中每一行的数据双击事件委托给父元素,从而实现动态修改数据。示例代码如下:

$('#mytable tbody').on('dblclick', 'tr:not(.editing)', function() {
  var tds = $(this).find('td');
  var name = tds.eq(0).text();
  var age = tds.eq(1).text();
  var inputs = '<input type="text" value="'+ name +'" data-field="name"><input type="text" value="'+ age +'" data-field="age">';
  tds.html(inputs);
  $(this).addClass('editing');
});

$('#mytable tbody').on('blur', 'input', function() {
  var td = $(this).parent();
  var value = $(this).val();
  var field = $(this).data('field');
  td.html(value);
  td.closest('tr').removeClass('editing');
});

6. 实现动态查询数据

可以编写一个过滤函数,用于实现动态查询数据。示例代码如下:

$('#query').on('input', function() {
  var keyword = $(this).val();
  $('#mytable tbody tr').each(function() {
    var tr = $(this);
    var content = tr.text();
    if (content.indexOf(keyword) !== -1) {
      tr.show();
    } else {
      tr.hide();
    }
  });
});

示例

下面是一个基于jQuery的动态增删改查表格的完整示例,您可以在此基础上进行扩展和定制。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>动态增删改查表格信息</title>
  <style>
    #mytable {
      border-collapse: collapse;
      margin-bottom: 20px;
    }
    #mytable th,
    #mytable td {
      border: 1px solid #ccc;
      padding: 5px;
    }
    #mytable td:first-child {
      width: 100px;
    }
    #myform label {
      display: inline-block;
      width: 40px;
    }
    #myform input[type=text] {
      margin-right: 10px;
    }
    #query {
      font-size: 14px;
      padding: 5px 10px;
      border: 1px solid #ccc;
      border-radius: 3px;
      margin-bottom: 20px;
    }
    .editing input[type=text] {
      width: 80px;
    }
  </style>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
  <table id="mytable">
    <thead>
      <tr>
        <th>姓名</th>
        <th>年龄</th>
        <th>操作</th>
      </tr>
    </thead>
    <tbody></tbody>
  </table>

  <form id="myform">
    <label for="name">姓名:</label>
    <input type="text" id="name" name="name">
    <label for="age">年龄:</label>
    <input type="text" id="age" name="age">
    <input type="button" value="添加" id="add">
  </form>

  <input type="text" id="query" placeholder="查询姓名">

  <script>
    $(function() {
      $('#add').click(function() {
        var name = $('#name').val();
        var age = $('#age').val();
        if (!name || !age) return;
        var tr = '<tr><td>'+ name +'</td><td>'+ age +'</td><td><a href="javascript:" class="delete">删除</a></td></tr>';
        $('#mytable tbody').append(tr);
      });

      $('#mytable tbody').on('click', '.delete', function() {
        $(this).closest('tr').remove();
      });

      $('#mytable tbody').on('dblclick', 'tr:not(.editing)', function() {
        var tds = $(this).find('td');
        var name = tds.eq(0).text();
        var age = tds.eq(1).text();
        var inputs = '<input type="text" value="'+ name +'" data-field="name"><input type="text" value="'+ age +'" data-field="age">';
        tds.html(inputs);
        $(this).addClass('editing');
      });

      $('#mytable tbody').on('blur', 'input', function() {
        var td = $(this).parent();
        var value = $(this).val();
        var field = $(this).data('field');
        td.html(value);
        td.closest('tr').removeClass('editing');
      });

      $('#query').on('input', function() {
        var keyword = $(this).val();
        $('#mytable tbody tr').each(function() {
          var tr = $(this);
          var content = tr.text();
          if (content.indexOf(keyword) !== -1) {
            tr.show();
          } else {
            tr.hide();
          }
        });
      });
    });
  </script>
</body>
</html>

上面的示例实现了一个简单的动态增删改查表格,并添加了查询功能和行内编辑功能。您可以通过页面中的输入框进行姓名的查询,也可以通过双击某行数据编辑对应信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于jQuery的动态增删改查表格信息,可左键/右键提示(原创自Zjmainstay) - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 详解基于 Nuxt 的 Vue.js 服务端渲染实践

    非常感谢您对我所写的“详解基于 Nuxt 的 Vue.js 服务端渲染实践”的兴趣。下面是完整的攻略: 什么是服务端渲染(SSR) 服务器端渲染是将动态内容生成到HTML、CSS等前端文件中(称为”Server Side Rendering”(SSR)),然后再输出到前端浏览器进行渲染的一种方法。与传统的前端渲染不同,SSR可以提供更好的SEO优化和更好的页…

    other 2023年6月27日
    00
  • vue自定义指令和动态路由实现权限控制

    下面我将详细讲解一下“Vue自定义指令和动态路由实现权限控制”的攻略。 什么是Vue自定义指令 Vue自定义指令是Vue框架的一项重要功能。它们允许开发人员自定义一些指令,这些指令可以在应用程序中重复使用,并且可以通过简单的属性设置来改变DOM元素的行为。 在Vue中,我们可以使用 Vue.directive 方法来创建自定义指令。下面是一个非常简单的例子:…

    other 2023年6月25日
    00
  • MySql登陆密码忘记及忘记密码的解决方案

    针对MySQL登录密码忘记或忘记密码的问题,下面是解决方案的完整攻略。 1. 找回MySQL登录密码 1.1 使用管理员账号登录 如果你还记得管理员账号的密码,则可以使用管理员账号登录MySQL服务,然后重置被遗忘的密码。 1.2 使用root账号登录 如果你拥有root账号的访问权限,则可以使用root账号登录MySQL服务,然后重置被遗忘的密码。 1.3…

    other 2023年6月26日
    00
  • ubuntu环境变量设置方法分享

    下面是详细讲解“ubuntu环境变量设置方法分享”的完整攻略。 环境变量是什么 环境变量是操作系统定义的一些全局变量,主要用于在所有进程中存储以供访问的值。在 Ubuntu 中,环境变量通常用于指定一些重要的系统路径和配置信息,例如 PATH、JAVA_HOME 等。 查看当前环境变量 在 Ubuntu 终端中,我们可以使用 echo $PATH 命令查看当…

    other 2023年6月27日
    00
  • arm的strb和ldrb指令分析

    当然,我很乐意为您提供ARM的strb和ldrb指令分析的完整攻略。以下是详细的步骤和示例: 步骤1:了解strb和ldrb指令 strb和ldrb指令是ARM指令集中用于存储和加载8位字节的指令。strb指令用于将一个8位的字节数据存储到内存中,而ldrb指令用于从内存中加载一个8位的字节数据到寄存器中。 步骤2:了解strb和ldrb指令的语法 strb…

    other 2023年5月6日
    00
  • osg + cuda

    以下是osg+cuda的完整攻略,包含osg和cuda的基本介绍、osg中使用cuda的方法、以及两个示例说明。 OSG+cuda的介绍 OpenSceneGraph(OSG)是开源的3D图形引擎,支持多种平台和多种编程语言。CUDA是NVIDIA开发的一种并行计算平台和编程模型,用于GPU加速计算。OSG+cuda的组合可以实现高效的3D图形渲染和GPU加…

    other 2023年5月7日
    00
  • chrome谷歌浏览器的跨域设置(包括版本49前后两种设置)

    Chrome谷歌浏览器的跨域设置攻略 在Chrome浏览器中,跨域设置是为了保护用户的安全和隐私而设计的。在版本49之前和之后,Chrome浏览器的跨域设置有所不同。下面将详细介绍这两种设置方法,并提供两个示例说明。 版本49之前的设置方法 在Chrome版本49之前,可以通过启动浏览器时添加命令行参数的方式来设置跨域访问。以下是设置跨域访问的步骤: 打开命…

    other 2023年8月3日
    00
  • 在Excel中用Findb函数区分大小写查看字节位置方法图解

    在Excel中用Findb函数区分大小写查看字节位置方法图解 在Excel中,我们可以使用FINDB函数来查找一个字符串在另一个字符串中的位置。与FIND函数不同的是,FINDB函数可以区分大小写,并且按字节位置进行查找。下面是详细的攻略,包含两个示例说明。 语法 FINDB函数的语法如下: FINDB(要查找的字符串, 在哪个字符串中查找, 开始搜索的位置…

    other 2023年8月16日
    00
合作推广
合作推广
分享本页
返回顶部