首页 > 解决方案 > 如果和切换JS

问题描述

我在 if/else 上设置了一些条件,但它只适用于第一个条件,我使用了另一种方式开关,发现它完全有效,我该如何解决?

for (let i = 1; i < 10; i++) {
  let contentall = document.getElementById(`content${i}`)
  contentall.addEventListener('click', (e) => {
        if (xhr.onreadystatechange = okgo) {
          let ibg3 = document.querySelectorAll('.ibg3 img')
          let text2 = document.querySelectorAll('.text2')
          let text4 = document.querySelectorAll('.text4')
          let ibg4 = document.querySelectorAll('.ibg4')
          let arr = [ibg3, ibg4, text2, text4]
          if (e.target !== text2[i - 1] || text4[i - 1] || ibg3[i - 1] || ibg4[i - 1]) {
            console.log("no match")
          } else {
            letgotall(i - 1)
            return
          }

          switch (e.target) {
            case ibg3[i - 1]:
              letgotall(i - 1)
              break;
            case text2[i - 1]:
              letgotall(i - 1)
              break;
            case text4[i - 1]:
              letgotall(i - 1)
              break;
            case ibg4[i - 1]:
              letgotall(i - 1)
              break;
            default:
              console.log("failure")
          }
        }

标签: javascript

解决方案


因为你的条件不对,所以正确的方法是

if(e.target !== text2[i-1] || e.target !== text4[i-1])

或者如果你不想重复 e.target 你可以使用

if (!Set(text2[i-1], text4[i-1]).has(e.target)) console.log("Jesus Christ")

推荐阅读