zoukankan      html  css  js  c++  java
  • 排他思想

    排完思想

    需求:有 5 个按钮,点击当前按钮变红,其他按钮恢复默认颜色

    <!-- HTML 结构 -->
    <button>1</button>
    <button>2</button>
    <button>3</button>
    <button>4</button>
    <button>5</button>
    var aBtn = document.querySelectorAll('button');
    
    for(var i = 0; i < aBtn.length; i ++) {
        aBtn[i].onclick = function() {
            // Step1: 先干掉所有人,“排完”
            for(var i = 0; i < aBtn.length; i ++) {
                aBtn[i].style.backgroundColor = '';
            }
            // Step2: 再操作自己的
            this.style.backgroundColor = 'red';
        };
    }

    排兄思想

    <script src="https://cdn.bootcss.com/jquery/3.4.0/jquery.min.js"></script>
    <script>
    $("button").on("click", function() {
        // 先操作自己的,再干掉所有的兄弟,“排兄”
        $(this).css("background", "red").siblings().css("background", "");
    });
    </script>

    排上思想

    var aBtn = document.querySelectorAll('button');
    var prev = 0;
    
    for (var i = 0; i < aBtn.length; i++) {
        aBtn[i].index = i;
        aBtn[i].onclick = function () {
            // Step1: 先干掉上一个,“排上”
            aBtn[prev].style.backgroundColor = "";
            // Step2: 再操作自己的
            this.style.backgroundColor = 'red';
            // Step3: 操作完别忘了把自己也变成“上一个”
            prev = this.index;
        };
    }

     优化

    let aBtn = document.querySelectorAll('button')
        aBtn.forEach(btn => {
          btn.onclick = function () {
            aBtn.forEach((item, index) => {
              aBtn[index].style.backgroundColor = ''
            })
            this.style.backgroundColor = 'red'
          }
        })
  • 相关阅读:
    怎样提高js的编程能力
    如何提升自己
    利用nginx做反向代理解决前端跨域问题
    vue项目中使用组件化开发
    vue中refs的使用
    vue项目使用keep-alive的作用
    hadoop安装、使用过程的异常汇总
    CSS选择器优先级总结
    为什么CSS选择器是从右往左解析
    MySql中游标的定义与使用方式
  • 原文地址:https://www.cnblogs.com/yadi001/p/13560951.html
Copyright © 2011-2022 走看看