【油猴脚本】00007 案例 Tampermonkey油猴脚本,动态渲染表格-实现页面动态-删除表格列,table删除thead里的td,并重新生成新表格,HTML+Css+JavaScript编写

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕

共同探索软件研发!敬请关注【宝码香车】
csdngif标识


📚💡📝🗂️✍️🛠️💻🚀🎉🏗️🌐🖼️🔗📊👉🔖⚠️🌟🔐⬇️·正文开始⬇️·🎥😊🎓📩😺🌈🤝🤖📜📖📋🔍✅🧰❓📄📢📈 🙋1️⃣2️⃣3️⃣

【油猴脚本】00007 案例 Tampermonkey油猴脚本,动态渲染表格-实现页面动态-删除表格列,table删除thead里的td,并重新生成新表格,HTML+Css+JavaScript编写

使用的库:

Bootstrap的Css库CDN:

https://apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.css

Jquery库CDN:

 https://code.jquery.com/jquery-1.9.1.min.js

Jquery的库easyuijs CDN:

https://www.jeasyui.com/easyui/jquery.easyui.min.js

📚一、效果

原表格

描述


📚二、核心解析

💡1.添加删除按钮:

用html编写按钮,并添加Css做修饰

<span class="delCol" style="margin-left: 20px;cursor:pointer;">删除此列</span>

完整代码

 //动态渲染列
  const colsRender = (optionStr)=>{
    let str = `
    <div class="form-group">
       <div class="item">
         <span>列名称:</span><span class="delCol" style="margin-left: 20px;cursor:pointer;">删除此列</span><input type="text"  class="form-control"  value="${optionStr}"> 
      </div>
    </div>
    `
    return str;
  }

💡2.给按钮添加点击事件:

JavaScript编写

  //表格-删除列事件函数
  $(".delCol").on('click',function(){
    if($('.form-group').length === 1){
      alert('至少保留一个列')
      return false;
    }
    $(this).parents('.form-group').remove();
  })

📚三、完整源代码,可以直接复制使用

✍️JavaScript

// ==UserScript==
// @name         动态渲染表格-实现页面动态-删除表格列
// @namespace    http://tampermonkey.net/
// @version      2024-09-12
// @description  动态渲染表格
// @author       CSDN@宝码香车
// @match        https://developer.mozilla.org/zh-CN/
// @resource bootstrapCss https://apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.css
// @require      https://code.jquery.com/jquery-1.9.1.min.js
// @require      https://www.jeasyui.com/easyui/jquery.easyui.min.js
// @grant        GM_addStyle
// @grant        GM_getResourceText
// @run-at       document-end
// ==/UserScript==


(function () {
  'use strict';

  let tableHtml = `
    <div class="col-md-8 table-card" style="padding:1em;">
     <div id="draggableArea">拖拽这里移动表格</div>
      <div  class="toolsArea">
       <span id="editCols" class="editCols">编辑表格-列</span>
      </div>
     <div class="table-responsive">
      <table class="table table-bordered table-striped" id="test_table">
      </table>
     </div>
    </div>
    `
  let cssMore = `
   #draggableArea,.toolsArea{padding:10px;background:#f5f5f5;}
   .table-card{
    position:fixed;
    left:100px;
    top:150px;
    z-index:100;
    background:#fff;
    box-shadow: 0px 0px 0 10px #E95C8A;
   }
   .editCols{
    padding: 2px 5px;background:#f5f5f5;
   }
   .modal-body{
    height:300px;
    overflow-y: scroll;
   }
  `
  let bsCss = GM_getResourceText('bootstrapCss')
  GM_addStyle(bsCss)
  GM_addStyle(cssMore)
  $('body').append(tableHtml)

  $('.table-card').draggable({
    handle: '#draggableArea'
  })

  // 初始化列
  const initCols = (strArr)=>{
    let addTableHtml = `<thead><tr>`
    for (const x of strArr) {
      addTableHtml += `<td>${x}</td>`;
    }
    addTableHtml += `</tr></thead>`;
    addTableHtml += '<tbody><tr>'
    for (const y of strArr) {
      addTableHtml += `<td>默认无值</td>`;
    }
    addTableHtml += `</tr></tbody>`
    return addTableHtml
  }
  //定义表格列
  let tableColsArr = ['姓名','省份','城市','性别','职业','年龄']
  let initColHtml = initCols(tableColsArr)
  // 把动态渲染的表格内容,添加到页面中的table位置
  $('#test_table').html(initColHtml);

  //弹出框,编辑表格-列
  let editTableCols = `
  <div class="modal" id="editTableColsModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
      <div class="modal-dialog" role="document">
          <div class="modal-content">
              <div class="modal-header">
                <h4 class="modal-title" id="myModalLabel">编辑表格-列</h4>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true" class="colseBtn">&times;</span></button>
              </div>
              <form class="modal-body">
              </form>
              <div class="modal-footer">
                  <button type="button" class="btn btn-default colseBtn" data-dismiss="modal">关闭</button>
                  <button type="button" id="btn_submit" class="btn btn-primary" data-dismiss="modal">保存</button>
              </div>
          </div>
      </div>
  </div>
  `
  //动态渲染列
  const colsRender = (optionStr)=>{
    let str = `
    <div class="form-group">
       <div class="item">
         <span>列名称:</span><span class="delCol" style="margin-left: 20px;cursor:pointer;">删除此列</span><input type="text"  class="form-control"  value="${optionStr}"> 
      </div>
    </div>
    `
    return str;
  }

  //动态渲染多列函数
  const colsMoreRender = (strArrOpt)=>{
    let str = ''
    for(const x of strArrOpt){
      str += colsRender(x)
    }
    return str;
  }

  //渲染多列
  let colsMoreStr = colsMoreRender(tableColsArr)
  $('body').append(editTableCols); //弹出窗口添加到页面中
  $('#editTableColsModal .modal-body').html(colsMoreStr)

  //获取修改的数据
  const getFormData = ()=>{
    let strArr = []
    $('#editTableColsModal .modal-body .form-group input').each(function(idx,eleItm){
      let formName = $(eleItm).val();
      strArr.push(formName)
    })
    return strArr;
  }

  // 点击-编辑列按钮
  $("#editCols").click(function(){
    $('#editTableColsModal').show() //打开弹出窗口
  })
  // 点击-关闭按钮
  $(".colseBtn").click(function(){
    $('#editTableColsModal').hide() //关闭弹出窗口
  })
  // 点击-保存按钮
  $("#btn_submit").click(function(){
    let editData = $('#txt_name').val(); //获取编辑的数据
    $('#editTableColsModal').hide() //关闭弹出窗口
    let renderColHtml = initCols(getFormData())
    //渲染到页面上
    $('#test_table').html(renderColHtml);
  })

  //表格-删除列事件函数
  $(".delCol").on('click',function(){
    if($('.form-group').length === 1){
      alert('至少保留一个列')
      return false;
    }
    $(this).parents('.form-group').remove();
  })




  // Your code here...
})();

📚四、使用此代码的方法:

1.浏览器打开https://developer.mozilla.org/zh-CN/
2.把代码复制进油猴脚本,打开运行开关,刷新页面

  • 安装教程:👉 https://blog.csdn.net/qq_33650655/article/details/142097760
  • 使用教程:👉 https://blog.csdn.net/qq_33650655/article/details/142183047

到此这篇文章就介绍到这了,更多精彩内容请关注本人以前的文章或继续浏览下面的文章,创作不易,如果能帮助到大家,希望大家多多支持宝码香车~💕,若转载本文,一定注明本文链接。


整理不易,点赞关注宝码香车

更多专栏订阅推荐:
👍 html+css+js 绚丽效果
💕 vue
✈️ Electron
⭐️ js
📝 字符串
✍️ 时间对象(Date())操作

以下是一个简单的示例代码,演示如何使用jQuery实现基于异步请求的表格分页功能: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>表格分页示例</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> $(document).ready(function() { // 定义每页显示的记录数 var pageSize = 10; // 初始化表格 loadTable(1, pageSize); // 监听分页链接的点击事件 $(document).on('click', '.pagination li a', function(event) { event.preventDefault(); var page = $(this).data('page'); loadTable(page, pageSize); }); // 加载指定页码的表格数据 function loadTable(page, pageSize) { // 发送异步请求获取指定页码的数据 $.ajax({ url: 'data.php', data: {page: page, pageSize: pageSize}, dataType: 'json', success: function(data) { // 渲染表格数据 var html = ''; $.each(data, function(index, item) { html += '<tr>'; html += '<td>' + item.id + '</td>'; html += '<td>' + item.name + '</td>'; html += '<td>' + item.age + '</td>'; html += '</tr>'; }); $('#table-body').html(html); // 渲染分页链接 var total = Math.ceil(data.total / pageSize); var pagination = ''; for (var i = 1; i <= total; i++) { if (i == page) { pagination += '<li class="active"><a href="#" data-page="' + i + '">' + i + '</a></li>'; } else { pagination += '<li><a href="#" data-page="' + i + '">' + i + '</a></li>'; } } $('#pagination').html(pagination); } }); } }); </script> </head> <body> <table> <thead> <tr> <th>ID</th> <th>姓名</th> <th>年龄</th> </tr> </thead> <tbody id="table-body"></tbody> </table> <ul class="pagination" id="pagination"></ul> </body> </html> ``` 该示例代码使用了一个名为“data.php”的服务端脚本,用于返回指定页码的表格数据,数据格式为JSON。你需要根据自己的需求修改该脚本。 该示例代码使用了jQuery库来简化异步请求和DOM操作。如果你不想使用jQuery,可以使用原生JavaScript实现相同的功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宝码香车

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值