javaScript蓝桥杯-----宝贵的一票

这篇具有很好参考价值的文章主要介绍了javaScript蓝桥杯-----宝贵的一票。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、介绍

公司经常举办各种活动,但一到投票环节就犯了难,于是公司决定安排小蓝开发一个投票系统,更好的收集大家的投票信息。为了赶在下一次活动开始前上线,小蓝正在马不停蹄的赶工中,请你也来帮助小蓝完成部分功能吧。

二、准备

本题已经内置了初始代码,打开实验环境,目录结构如下:

├── css
├── images
├── js
│   └── jquery.min.js
└── index.html

其中:

  • index.html 是主页面。
  • images 是存放图片的文件夹。
  • css 是存放样式文件的文件夹。
  • js/jquery.min.js 是 jQuery 文件。
    选中 index.html 右键启动 Web Server 服务(Open with Live Server),让项目运行起来。

接着,打开环境右侧的【Web 服务】,就可以在浏览器中看到如下效果:
javaScript蓝桥杯-----宝贵的一票

三、目标

完成 index.html 文件中的 TODO 部分。

  1. 点击添加选项,页面中新增一个选项。选项前文字按照:选项 1,选项 2,选项 3 … 顺序排列,当页面中的选项大于 2 个时,选项后面跟随删除按钮(即 x 图标)。带有删除图标的选项 DOM 结构如下:
<div class="mb-3 row item">
  <label class="col-sm-2 col-form-label txt">选项1</label>
  <div class="col-sm-9">
    <input type="text" class="form-control" />
  </div>
  <div class="col-sm-1">
    <!-- 删除图标 -->
    <img class="del-icon" src="./images/x.svg" alt="" />
  </div>
</div>

  1. 点击删除按钮,删除当前选项,并且选项前文字按照:选项 1,选项 2,选项 3 … 顺序排列,当选项数量小于等于 2 个时,选项后面无删除按钮。

完成后,最终页面效果如下:
javaScript蓝桥杯-----宝贵的一票

四、代码

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <title>宝贵的一票</title>
    <script src="./js/jquery.min.js"></script>
    <link rel="stylesheet" href="./css/bootstrap.min.css" />
    <link rel="stylesheet" href="./css/style.css" />
  </head>

  <body>
    <div class="inner-container shadow">
      <div class="mb-3 row">
        <label class="col-sm-2 col-form-label">投票主题</label>
        <div class="col-sm-9">
          <input type="text" class="form-control" />
        </div>
      </div>
      <div class="list"></div>
      <div class="add">
        <div class="addtxt">
          <img src="./images/plus-square.svg" alt="加号图标" />
          添加选项
        </div>
      </div>
      <div class="form-check checkbox-one">
        <input class="form-check-input" type="checkbox" value="" />
        <label class="form-check-label" for="flexCheckDefault">
          支持多选
        </label>
      </div>
      <div class="form-check">
        <input class="form-check-input" type="checkbox" value="" />
        <label class="form-check-label" for="flexCheckDefault">
          公开投票结果
        </label>
      </div>

      <div class="row bottom">
        <div class="col">
          <a class="historytxt" href="javascript:void(0)">历史投票</a>
        </div>
        <div class="col"></div>
        <div class="col">
          <button type="button" class="btn btn-light">取消</button>
          <button type="button" class="btn btn-primary">发起投票</button>
        </div>
      </div>
    </div>

    <script>
      let initRender = (txt) => {
        return `<div class="mb-3 row">
                <label class="col-sm-2 col-form-label txt">${txt}</label>
                <div class="col-sm-9">
                    <input type="text" class="form-control">
               </div>
            </div>`;
      };
      $(
        (function () {
          // 初始化的时候渲染两条数据,且不带删除符号
          for (let index = 0; index < 2; index++) {
            let initList = initRender(`选项${index + 1}`);
            $(".list").append(initList);
          }

          // 点击加号逻辑
          $(".add").click(function () {
            // TODO 待补充代码
          });
          // 点击 x 删除逻辑,列表小于 2 项时不显示删除图标
          $(document).on("click", ".del-icon", function () {
            // TODO 待补充代码
          });
        })()
      );
    </script>
  </body>
</html>

五、检测踩坑!!

一开始的思路是修改initRender的模板 将其替换为都有×号的模板,然后在执行判断 如果长度小于等于2 就将其display修改为none,完成后看起来效果一样,但是检测死活过不了,想了想可能是因为他的检测方式不管display是否为none都可以模拟点击到X图标,故长度等于2时仍然被删除成功。文章来源地址https://www.toymoban.com/news/detail-470916.html

六、完成

 <script>
    let initRender = (txt) => {
      return `<div class="mb-3 row">
                <label class="col-sm-2 col-form-label txt">${txt}</label>
                <div class="col-sm-9">
                    <input type="text" class="form-control">
               </div>
            </div>`;
    };
    $(
      (function () {
        // 初始化的时候渲染两条数据,且不带删除符号
        for (let index = 0; index < 2; index++) {
          let initList = initRender(`选项${index + 1}`);
          $(".list").append(initList);
        }
        function format() {
          //1.图标的处理
          const leng = $('.list').children().length
          let tem = `<div class="col-sm-1">
             <!-- 删除图标 -->
            <img class="del-icon" src="./images/x.svg" alt="" />
             </div>`
            //先全部删除图标 再判断长度 如果大于2则全加
          $('.col-sm-1').remove()
          leng > 2 && $('.list').children().append(tem)
          //2.名称的处理 
          for (var i = 0; i < leng; i++) {
            $('.txt')[i].innerHTML = `选项${i + 1}`
          }
        }
        // 点击加号逻辑
        $(".add").click(function () {
          // TODO 待补充代码
          //添加
          let initList = initRender(`选项${$('.list').children().length + 1}`);
          $(".list").append(initList);
          //格式化
          format()
        });
        // 点击 x 删除逻辑,列表小于 2 项时不显示删除图标
        $(document).on("click", ".del-icon", function (e) {
          // TODO 待补充代码
          //删除当前节点
          e.target.parentNode.parentNode.remove()
          //格式化
          format()
        });
      })()
    );
  </script>

到了这里,关于javaScript蓝桥杯-----宝贵的一票的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • javaScript蓝桥杯-----芝麻开门

    在阿里巴巴和四十大盗的故事中,阿里巴巴因为无意中知道了开门的咒语人生发生了翻天覆地的变化,四十大盗也因为咒语的泄露最终丧命。芝麻开门的咒语作为重要的信息推动着故事的发展。下面由你来为门设置这道机关,输入芝麻开门后才能放行。 本题已经内置了初始代

    2024年02月07日
    浏览(38)
  • javaScript蓝桥杯---新增地址

    网购大家应该再熟悉不过,网购中有个很难让人忽略的功能就是地址管理,接下来就让我们通过完善代码来探索下地址管理中常用功能的实现吧~ 本题需要在已提供的基础项目中使用 JS 知识完善代码,最终实现需求中的具体功能。 开始答题前,需要先打开本题的项目代码文

    2024年02月08日
    浏览(36)
  • javaScript蓝桥杯----绝美宋词

    “今宵酒醒何处,杨柳岸晓风残月”,“蓦然回首,那人却在灯火阑珊处”,“试问闲愁都几许?一川烟草,满城风絮,梅子黄时雨” … 宋词可谓是古代文学桂冠上一颗璀璨的明珠,本题将实现一个在搜索框中输入,实时显示符合条件的完整宋词的功能。 本题已经内

    2024年02月07日
    浏览(35)
  • JavaScript蓝桥杯------学海无涯

    小蓝最近一直在云课平台学习,为了更好的督促自己,于是将每天的学习时间都记录了下来,但是如何更加直观的显示学习时间让小蓝很是苦恼。本题需要你使用 ECharts 帮助小蓝实现统计学习时间图表。 本题已经内置了初始代码,打开实验环境,目录结构如下: 其中: ind

    2024年02月07日
    浏览(31)
  • 美国初创公司Rabbit推出口袋AI设备R1;吴恩达课程:使用LangChain.js构建强大的JavaScript应用

    🦉 AI新闻 🚀 美国初创公司Rabbit推出口袋AI设备R1,短时间内被抢购一空 摘要 :美国初创公司Rabbit在CES 2024上发布了口袋AI设备R1,这款设备在一天内被抢购一空,售价为199美元。R1具有小巧玲珑的触屏、摄像头和交互滚轮按钮,搭载Rabbit自主研发的操作系统rabbitOS和大型操作

    2024年01月18日
    浏览(47)
  • 基于JAVA公司介绍网站设计与实现(Springboot框架) 研究背景与意义、国内外研究现状

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月03日
    浏览(43)
  • 【RUST】请为get_local_info提出宝贵意见

    大家好,我是get_local_info库的作者,get_local_info诞生有半个月了,累计下载量达到400。它的目标很简单,就是要让linux上获取数据信息变得简单,同时也会提供一些常用功能。 下面是链接地址: 【我的RUST库】get_local_info 0.2.1发布-CSDN博客 欢迎大家为它提出宝贵意见,让他变得

    2024年02月02日
    浏览(43)
  • 介绍5款热门的Chat GPT应用,总有适合你的一款

    从2022年12月初刚上线至今,不到半年时间 ChatGPT月活就超过了1亿用户!可谓火的一塌糊涂, 比尔盖茨都称: ChatGPT 的历史意义重大,不亚于PC或互联网诞生! 以至于ChatGPT官网长期都处于满负荷运转的状态! 由于ChatGPT的注册门槛较高,加上OPENAI官方API的成本高 国内很多网站

    2023年04月13日
    浏览(42)
  • 自学编程的5大误区,早知道早避坑,过来人的宝贵经验

    有的人自学很快,几乎一个多月就能掌握一门技术,而有的人苦苦坚持,最后还是半途而废,很大的原因就在于在学习的时候掉进了一些误区没能走出来。 今天我们就来讲讲自学编程常见的5大误区,避开这些误区我们定能在自学之路上轻车熟路 我经常听到一些准备入门的新

    2023年04月10日
    浏览(35)
  • 超级利器!Postman自动化接口测试让你提升测试效率,节省宝贵时间!

    Postman自动化接口测试 该篇文章针对已经掌握 Postman 基本用法的读者,即对接口相关概念有一定了解、已经会使用 Postman 进行模拟请求的操作。 当前环境: Window 7 - 64 Postman 版本(免费版):Chrome App v5.5.3 不同版本页面 UI 和部分功能位置会有点不同,不过影响不大。 我们先思

    2024年01月20日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包