【问题标题】:If and switch JS [duplicate]如果和切换 JS [重复]
【发布时间】:2019-12-24 15:11:36
【问题描述】:

我在 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")
          }
        }

【问题讨论】:

  • 请在发布之前从您的代码中删除任何脏话。谢谢
  • 很抱歉,已经完成了。
  • ,缩进您的代码并在整个代码中始终使用indenting style。这样做会使它更加更容易阅读/维护。作为副作用,为您放置在 Stack Overflow 上的代码这样做会使您更有可能让人们对您的帖子进行投票,并使人们更有可能花时间回答您的问题。您选择哪种风格并不重要(尽管在 IMO 中,有些风格比其他风格更适合 JavaScript)。但是,选择一个并一致地用于单个项目中的所有代码。
  • 感谢您的提醒,我想知道为什么我得到了如此多的反对票,这是我第一次知道什么是缩进样式,再次感谢。

标签: javascript


【解决方案1】:

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

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")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-02
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    相关资源
    最近更新 更多