首页 > 其他分享 >JS学习

JS学习

时间:2023-12-02 17:12:53浏览次数:26  
标签:newRow appendChild JS 学习 radioBtn var document editableCell

  • 知识体系

                            

                         

  • 案例整理
  1. 需求:包含日常任务处理、日志编写以及日期更新
  2. 所用知识点:
    • 日期获取:            var now = new Date();             var year = now.getFullYear();             var month = now.getMonth() + 1;             var day = now.getDate();
    • 时间更新: setInterval(updateTime, 1000);
    • 自动表单验证:关键词 required
    • 垂直导航栏
    • 响应式布局: @media screen and (max-width: 600px)
    • 不同状态下时改变链接           
  3. 代码
<!DOCTYPE html>
<html lang="en">


<body>
    <div class="header">
        <span id="datetime" style="float: left;"></span>
        <span id="a"> 任务处理表</span>

    </div>
    <div class="row">
        <div class="column left">
            <ul>
                <li><a href="#" onclick="showContent('content1')">日计划</a></li> <br>
                <li><a href="#" onclick="showContent('content2')">兼职记录</a></li> <br>
                <li><a href="#" onclick="showContent('content3')">学习情况</a></li> <br>
            </ul>
        </div>
        <div class="column middle">
            <div id="div2">
                <div id="plan" style="font-family: Georgia, 'Times New Roman', Times, serif; font-size: larger;">任务列表
                </div>
                <div class="title"
                    style="font-family:'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;">
                    task
                    <button id="add" onclick="add222('')">新增</button>
                </div>

                <table id="table2" class="taskTable">
                </table>
                <div class="title">已完成</div>

                <table id="table3" class="taskTable">
                </table>
            </div>

        </div>
        <div class="column right">
            <form action="/demo/html/action_page.php" method="post"> 
                <label for="message">日志:</label>
                <br /><br />
                <textarea id="message" name="message" rows="10" cols="50" required></textarea>
                <input type="submit" value="保存" style="float: right;">
            </form>
        </div>

    </div>
   

</body>

</html>

 CSS部分:

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            box-sizing: border-box;
        }

        body {
            margin: 0;
            background-color: antiquewhite;
        }

        .header {
            padding: 40px;
            text-align: center;

        }

        #datetime {
            color: rgb(203, 196, 183);
            font-family: 'Times New Roman', Times, serif;
            font-size: 25px;
            text-shadow: 1px 1px 1px rgb(3, 0, 5);
            font-style: oblique;
        }

        #a {
            color: rgb(203, 196, 183);
            font-family: 'Times New Roman', Times, serif;
            font-size: 50px;
            text-shadow: 1px 1px 1px rgb(3, 0, 5);
            font-style: oblique;


        }

        ul {
            list-style-type: none;
            margin: 0;
            padding: 0;
            height: 100%;
            font-size: medium;
        }

        li a {
            display: block;
            color: #b06f19;
            padding: 8px 16px;
            text-decoration: none;
        }

        li a:hover {
            color: white;
        }

        #div2 {
            background-color: rgb(228, 213, 177);
            position: absolute;
            padding: 0;
                   }

        .title {
            margin: 20px 10px 20px 10px;
            text-align: left;
            display: flex;
            color: white;
            font-size: 25px;
            align-items: center;
        }
        #add {
            position: absolute;
            right: 30px;
            height: 30px;
        }

        #message {
            background-color: rgb(243, 218, 181)
        }
        th,
        td {
            text-align: center;
            padding: 8px;
            border: 1px solid rgb(155, 152, 144);
            border-radius: 5%;
        }

        .deleteButton {
            background-color: #ddd;
            border: none;
            color: red;
            padding: 4px 8px;
            text-align: center;
            text-decoration: none;
            display: inline-block;
            font-size: 12px;
            cursor: pointer;
        }
        .column {
            float: left;
            padding: 10px;
        }

        .column.left {
            width: 13%;
            background-color: rgb(107, 91, 82);

        }
        .column.middle {
            width: 44%;
            background-color: antiquewhite;
        }

        .column.right {
            width: 43%;
        }

        @media screen and (max-width: 600px) {

            .column.side,
            .column.middle {
                width: 100%;
            }
        }

        .row:after {
            content: "";
            display: table;
            clear: both;
        }
    </style>


</head>

JS部分:

<script>
        
        function getTime() {
            var now = new Date();
            var year = now.getFullYear();
            var month = now.getMonth() + 1;
            var day = now.getDate();
            var week = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'][now.getDay()];
            return year + '年' + month + '月' + day + '日 ' + ' ' + week;
        }
        function updateTime() {
            var datetimeElement = document.getElementById("datetime");
            datetimeElement.innerHTML = getTime();
        }
        setInterval(updateTime, 1000); 

        function add222(strContent) {
            var newRow = document.createElement('tr');
            var td1 = document.createElement('td');
            var radioBtn = document.createElement('input');
            radioBtn.className = "radioBtn";
            radioBtn.setAttribute('type', 'checkbox');
            radioBtn.setAttribute('name', 'option');
            radioBtn.setAttribute('value', 'option1');
            radioBtn.addEventListener('click', function (ele) {
                newRow.remove();
                if (radioBtn.checked) {
                    document.getElementById("table3").appendChild(newRow);
                } else {
                    document.getElementById("table2").appendChild(newRow);
                }

            });
            td1.appendChild(radioBtn);
            var editableCell = document.createElement('td');
            editableCell.className = "editableCell";
            editableCell.setAttribute('contenteditable', 'true');
            editableCell.setAttribute('width', '400');
            editableCell.innerHTML = strContent;
            var td2 = document.createElement('td');
            var deleteBtn = document.createElement('button');
            deleteBtn.className = "myRowClass";
            deleteBtn.innerHTML = '删除';
            deleteBtn.classList.add('deleteButton');
            td2.appendChild(deleteBtn);
            deleteBtn.addEventListener('click', function () {
                newRow.remove();
            });
            newRow.className = "newRow";
            newRow.appendChild(td1);
            newRow.appendChild(editableCell);
            newRow.appendChild(td2);
            document.getElementById("table2").appendChild(newRow);
        }

        function addF(strContent) {
            var newRow = document.createElement('tr');
            var td1 = document.createElement('td');
            var radioBtn = document.createElement('input');
            radioBtn.className = "radioBtn";
            radioBtn.setAttribute('type', 'checkbox');
            radioBtn.setAttribute('name', 'option');
            radioBtn.checked = true;
            radioBtn.addEventListener('click', function (ele) {
                newRow.remove();
                if (radioBtn.checked) {
                    document.getElementById("table3").appendChild(newRow);
                } else {
                    document.getElementById("table2").appendChild(newRow);
                }

            });
            td1.appendChild(radioBtn);
            var editableCell = document.createElement('td');
            editableCell.className = "editableCell";
            editableCell.setAttribute('contenteditable', 'true');
            editableCell.setAttribute('width', '400');
            editableCell.innerHTML = strContent;
            var td2 = document.createElement('td');
            var deleteBtn = document.createElement('button');
            deleteBtn.className = "myRowClass";
            deleteBtn.innerHTML = '删除';
            deleteBtn.classList.add('deleteButton');
            td2.appendChild(deleteBtn);
            deleteBtn.addEventListener('click', function () {
                newRow.remove();
            });
            newRow.className = "newRow";
            newRow.appendChild(td1);
            newRow.appendChild(editableCell);
            newRow.appendChild(td2);
            document.getElementById("table3").appendChild(newRow);
        }


        function delete222(ele) {
            ele.parentElement.parentElement.remove();
        }
        add222(" ");
        add222(" ");
        add222(" ");
        add222(" ");
        add222(" ");
    </script>

 

  • 效果图

                        

 

标签:newRow,appendChild,JS,学习,radioBtn,var,document,editableCell
From: https://www.cnblogs.com/sxr0316/p/17871069.html

相关文章

  • 前端学习-JavaScript学习-js基础-API02-轮播图案例
    自己写的<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title>......
  • Flask ORM 学习笔记Part02:Flask-Migrate的使用,数据库创建与数据导入
    在上一篇学习笔记中,定义了各个类之间的关系。本篇笔记就来研究一下,将model类转数据库一般来说在Flask环境下,使用Flask-Migrate这个扩展,用于简化数据库模型的迁移管理。数据库迁移是在应用开发过程中对数据库模型进行更改的一种方式,以确保数据库结构与应用代码的演变保持同步。Flas......
  • 人工智能基础 - 机器学习工作流程
    什么是机器学习机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测。机器学习工作流程1.获取数据集2.数据基本处理3.特征工程4.机器学习(模型训练)5.模型评估结果达到要求,上线服务没有达到要求,重新上面步骤获取数据集在数据集中一般:一行数据我们称为一个样本一列数据我......
  • 20211316郭佳昊 《信息安全系统设计与实现(上)》 第十二周学习总结 MySQL数据库系统
    一、任务要求[1]知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)我在学****知识点,请你以苏格拉底的方式对我进行提问,一次一个问题核心是要求GPT:请你以苏格拉底的方式对我进行提问然后GPT就会......
  • 第十二周学习笔记
    数据库系统MySQL简介MySQL(MySQL2018)是一个关系数据库系统(Codd1970)c在关系数据库中,数据存储在表中。每个表由多个行和列组成。表中的数据相互关联。表也可能与其他表有关联。关系结构使得可在表上运行查询来检索信息并修改数据库中的数据。关系数据库系统的标准查询语言是......
  • 《计算机基础与程序设计》第10周学习总结
    学期(2023-2024-1)学号(20231327)《计算机基础与程序设计》第10周学习总结作业信息课程<班级的链接>(2023-2024-1-计算机基础与程序设计)要求<作业要求的链接>(2023-2024-1计算机基础与程序设计第10周作业目标<了解文件系统和目录以及字符串的使用>作业正文https:......
  • 我的心血之作:一套适合 SAP UI5 从业人员从入门到进阶的学习教程,以及教程背后的故事
    一转眼2023年又要结束了。我从2007年开始,以软件开发工程师的角色进入职场,马上也快满17年了。在这快17年的软件开发职业生涯里,我也见识并使用了许许多多的开发技术,编程语言,开发框架,平台。IT界这十多年来涌现出的一些新技术,我也主动或被动地去追逐过。比如2015年时,大......
  • 学习笔记4:JavaSE & API(网络编程 & 多线程)
    1、java.net.Socket:(1)定义:Socket(套接字)封装了TCP协议的通讯细节,是的我们使用它可以与服务端建立网络链接,并通过它获取两个流(一个输入一个输出),然后使用这两个流的读写操作完成与服务端的数据交互。(2)方法getInputStream():获取输入流,返回值是InputStream的一个子类实例。ge......
  • 2023-2024-1 20232312 《网络空间安全导论》第四周学习
    2023-2024-120232312《网络空间安全导论》第二周学习教材学习内容总结4.1系统安全概述1.系统的定义计算机系统是由硬件和软件组成的复杂系统,它能够接受输入数据,进行处理,然后输出结果。理解计算机系统需要从多个层面进行分析,包括硬件、操作系统、应用软件等方面。2.整......
  • 第十三周学习笔记(学习笔记12)
    〇、思维导图一、知识点总结MySQL数据库简介MySQL是一个关系型数据库管理系统,是最流行的关系型数据库管理系统之一。在WEB应用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件。MySQL是将数据保存在不同的表中,而不是将......