WebAPI基础知识回顾

96 阅读1分钟

排他思想

解题思路:按钮,被鼠标点击,此按钮背景变为粉色,其它按钮背景不变

循环排他(炸弹式)干掉所有,复活一个

排他思想.gif

<body>
  <button>按钮1</button>
  <button>按钮2</button>
  <button>按钮3</button>
  <button>按钮4</button>
  <button>按钮5</button>

  <script>
    let button = document.querySelectorAll('button')
    for (let i = 0; i < button.length; i++) {
      button[i].onclick = function () {
        for (let j = 0; j < button.length; j++) {
          button[j].style.backgroundColor = ''
        }
        this.style.backgroundColor = 'pink'
      }
    }
  </script>
</body>

类名排他(机枪式)干掉一个,复活一个

类名排他.gif

<style>
    .pink {
      background-color: pink;
    }
</style>
  
<body>
  <button class="pink">按钮1</button>
  <button>按钮2</button>
  <button>按钮3</button>
  <button>按钮4</button>
  <button>按钮5</button>
  <script>
    let buttonList = document.querySelectorAll('button')

    for (let i = 0; i < buttonList.length; i++) {
      buttonList[i].onclick = function () {
        document.querySelector('.pink').classList.remove('pink')
        this.classList.add('pink')
      }    
    }
  </script>
</body>

如果使用循环排他,就使用.style,如果使用类名排他,就使用.classList,不要混着用。而且如果你使用类名排他的话,就必须有一个,比如上面的例子,就必须有一个按钮已经加了.pink类哦。还有就是,判断不同的情况使用不同的方法,有类名的话,就使用类名排他,没有的话,就使用循环排他。