简单实现一个todoList(上移、下移、置顶、置底)

news2024/11/25 6:53:18

演示

html部分请添加图片描述

<!DOCTYPE html>
<html>
<head>
    <title>表格示例</title>
</head>
<body>
    <table border="1">
        <thead>
            <tr>
                <th>更新时间</th>
                <th>操作</th>
            </tr>
        </thead>
        <tbody id="tableBody">
            <!-- 这里是虚拟数据行,你可以根据需要添加更多 -->
            <tr>
                <td>2023-10-13 10:00 ---- PM</td>
                <td>
                    <button onclick="moveUp(this)">上移</button>
                    <button onclick="moveDown(this)">下移</button>
                    <button onclick="moveToTop(this)">置顶</button>
                    <button onclick="moveToBottom(this)">置底</button>
                    <button onclick="removeRow(this)">删除</button>
                </td>
            </tr>
            <tr>
                <td>2023-10-13 02:30 ---- AM</td>
                <td>
                    <button onclick="moveUp(this)">上移</button>
                    <button onclick="moveDown(this)">下移</button>
                    <button onclick="moveToTop(this)">置顶</button>
                    <button onclick="moveToBottom(this)">置底</button>
                    <button onclick="removeRow(this)">删除</button>
                </td>
            </tr>
        </tbody>
    </table>

    <button onclick="addRow()">添加数据行</button>

    <script>
        //添加行
        function addRow() {
            var tableBody = document.getElementById("tableBody");
            var newRow = document.createElement("tr");
            newRow.innerHTML = `
                <td>${getCurrentTime()+'----'+Math.round(Math.random()*100+1)}</td>
                <td>
                    <button onclick="moveUp(this)">上移</button>
                    <button onclick="moveDown(this)">下移</button>
                    <button onclick="moveToTop(this)">置顶</button>
                    <button onclick="moveToBottom(this)">置底</button>
                    <button onclick="removeRow(this)">删除</button>
                </td>
            `;
            tableBody.appendChild(newRow);
        }
        //移除行
        function removeRow(button) {
            var row = button.parentNode.parentNode;
            row.remove();
        }
        function getCurrentTime() {
            var now = new Date();
            var year = now.getFullYear();
            var month = (now.getMonth() + 1).toString().padStart(2, '0');
            var day = now.getDate().toString().padStart(2, '0');
            var hours = now.getHours().toString().padStart(2, '0');
            var minutes = now.getMinutes().toString().padStart(2, '0');
            var time = `${year}-${month}-${day} ${hours}:${minutes}`;
            return time;
        }
    </script>
</body>
</html>

上移

        function moveUp(button) {
            var row = button.parentNode.parentNode;
            if (row.previousElementSibling) {
                console.log("🚀 ~ file: tabel.html:67 ~ moveUp ~ row.previousElementSibling:", row.previousElementSibling)
                row.parentNode.insertBefore(row, row.previousElementSibling);
            }
        }

下移

        function moveDown(button) {
            var row = button.parentNode.parentNode;
            if (row.nextElementSibling) {
                console.log("🚀 ~ file: tabel.html:74 ~ moveDown ~ row.nextElementSibling:", row.nextElementSibling)
                row.parentNode.insertBefore(row.nextElementSibling, row);
            }
        }

置顶

        function moveToTop(button) {
            var row = button.parentNode.parentNode;
            var tableBody = row.parentNode;
            tableBody.insertBefore(row, tableBody.firstElementChild);
        }

置底

        function moveToBottom(button) {
            var row = button.parentNode.parentNode;
            var tableBody = row.parentNode;
            tableBody.appendChild(row);
        }
        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1089926.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 的安装

二、Python 的安装 因为 Python 是跨平台的&#xff0c;它可以运行在 Windows、Mac 和各种 Linux/Unix 系统上。目前&#xff0c;Python 有两个版本&#xff0c;一个是 2.x 版&#xff0c;一个是 3.x版&#xff0c;这两个版本是不兼容的。本草根安装的是 3.6.1 版本的。 至于…

MySQL之双主双从读写分离

一个主机 Master1 用于处理所有写请求&#xff0c;它的从机 Slave1 和另一台主机 Master2 还有它的从 机 Slave2 负责所有读请求。当 Master1 主机宕机后&#xff0c; Master2 主机负责写请求&#xff0c; Master1 、 Master2 互为备机。架构图如下 : 准备 我们…

代码随想录算法训练营第二十一天丨 二叉树part08

235. 二叉搜索树的最近公共祖先 思路 昨天做过的二叉树&#xff1a;公共祖先问题 (opens new window)题目&#xff0c;知道利用回溯从底向上搜索&#xff0c;遇到一个节点的左子树里有p&#xff0c;右子树里有q&#xff0c;那么当前节点就是最近公共祖先。 那么本题是二叉搜…

SpringBoot使用的时间与空间计量单位

SpringBoot支持JDK8提供的时间与空间计量单位 //时间单位DurationUnit(ChronoUnit.MINUTES)private Duration serverTimeOut;//存储空间单位DataSizeUnit(DataUnit.MEGABYTES)private DataSize dataSize; 在springboot中的具体使用&#xff1a; Component Data ConfigurationPr…

工程企业管理软件源码-综合型项目管理软件

工程项目管理软件&#xff08;工程项目管理系统&#xff09;对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营&#xff0c;全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&am…

H3C R6900 G5 RAID配置

1.开机按ESC进入BIOS 2.选择高级 阵列卡进行配置 3.选择configure 4.创建阵列 5.根据业务选择raid级别 6.选择硬盘 7.成功 8.返回主页面 9.确认 10.查看创建好的阵列

MySQL创建数据库、创建表操作和用户权限

1、创建数据库school&#xff0c;字符集为utf8 2、在school数据库中创建Student和Score表 3、授权用户tom&#xff0c;密码Mysql123&#xff0c;能够从任何地方登录并管理数据库school 4、使用mysql客户端登录服务器&#xff0c;重置root密码

【小黑嵌入式系统第一课】嵌入式系统的概述(一)

文章目录 一、嵌入式系统基本概念计算机发展的三大阶段CPU——计算机的核心什么是嵌入式系统嵌入式系统的分类 二、嵌入式系统的特点三、嵌入式系统发展无操作系统阶段简单操作系统阶段实时操作系统阶段面向Internet阶段 四、嵌入式系统的应用工业控制 工业设备通信设备信息家电…

Leetcode226.翻转二叉树

本专栏内容为&#xff1a;leetcode刷题专栏&#xff0c;记录了leetcode热门题目以及重难点题目的详细记录 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;Leetcode &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓库&#x1f69a; &…

虚幻引擎5:增强输入的使用方法

一、基本配置 1.创建一个输入映射上下文&#xff08;映射表&#xff09; 2.创建自己需要的操作映射或者轴映射 3.创建完成之后进入这个映射&#xff0c;来设置类型&#xff0c;共有4个类型 1.Digital:是旧版操作映射类型&#xff0c;一般是按下抬起来使用&#xff0c;像跳跃…

虚拟机安装Docker

安装Docker Docker 分为 CE 和 EE 两大版本。CE 即社区版&#xff08;免费&#xff0c;支持周期 7 个月&#xff09;&#xff0c;EE 即企业版&#xff0c;强调安全&#xff0c;付费使用&#xff0c;支持周期 24 个月。 Docker CE 分为 stable test 和 nightly 三个更新频道。…

【LeetCode高频SQL50题-基础版】打卡第7天:第36~40题

文章目录 【LeetCode高频SQL50题-基础版】打卡第7天&#xff1a;第36~40题⛅前言按分类统计薪水&#x1f512;题目&#x1f511;题解 上级经理已离职的公司员工&#x1f512;题目&#x1f511;题解 换座位&#x1f512;题目&#x1f511;题解 电影评分&#x1f512;题目&#x…

buuctf week2-web-ez_sql

闭合之后尝试判断字段数&#xff0c;存在WAF&#xff0c;使用大小写绕过&#xff08;后面的sql语句也需要进行大小写绕过&#xff09; ?id1 Order by 5-- 测出有5列 ?id1 Order by 6-- 查一下数据库名、版本、用户等信息 ?id1Union Select database(),version(),user(),4,…

ACP.复盘方法

复盘要怎么做的有水准&#xff0c;让领导满意&#xff0c;方式方法很重要。今天给你们安利5种复盘方法&#xff0c;保准你省事&#xff0c;领导还满意。 一、KPT复盘法 7月份年中一直在做和复盘相关的事&#xff0c;像公司的OKR复盘、年中战略规划&#xff0c;不过日常很多生…

Unity应用开发——开启无限创造之旅

Unity是一款令人叹为观止的跨平台游戏开发引擎&#xff0c;它打开了创作者们的无限创造之门。Unity不仅仅限于游戏开发&#xff0c;它还在虚拟现实、增强现实、模拟训练等多个领域取得了巨大成功。在经过充满激情和创意的Unity应用开发课程之后&#xff0c;世达教育迎来了这段精…

十七、【渐变工具组】

文章目录 渐变工具油漆桶工具 渐变工具 渐变样式有5种&#xff0c;分别是线性渐变&#xff0c;径向渐变&#xff0c;角度渐变&#xff0c;对称渐变&#xff0c;菱形渐变 另外渐变工具的颜色可以进行编辑&#xff0c;需要先打开渐变编辑工具&#xff1a; 如何使用渐变编辑工…

grafana api创建dashboard 记录

文章目录 json model导入申请api key创建dashboard删除dashboard json model导入 直接在ui通过json model 导入&#xff0c;开发自己用还好&#xff0c;但对非开发人员不太友好&#xff0c;故考虑通过api后台自动创建 api doc : https://grafana.com/docs/grafana/v9.3/devel…

【重拾C语言】十、递归程序设计

目录 前言 十、递归程序设计 10.1 计算n&#xff01;——递归程序设计 10.2 程序设计实例 10.2.1 汉诺塔 10.2.2 齿轮 10.2.3 组合 10.3 计算算术表达式的值——间接递归 10.4 递归程序执行过程 前言 递归程序设计是一种编程技术&#xff0c;其中一个函数通过调用自身…

Navicat For MySQL使用指南

勾选填充零后的效果&#xff0c;就是不够的位数用零来补齐&#xff01;

Eclipse插件安装版本不兼容问题解决方案——Papyrus插件为例

项目场景: Eclipse Papyrus安装后,没有新建Papyrus工程选项,也没有新建Papyrus Model的选项。 打开Papyrus Model会报错 问题描述 同样的,安装其他插件也是。可能某个插件之前安装是好用的,结果Eclipse的版本更新了,就再也安装不好用了 原因分析: 根本原因是因为包之…