Javascript 无法读取“”的属性;“类列表”;尝试将文本附加到Else If中的DIV时为Null

Javascript 无法读取“”的属性;“类列表”;尝试将文本附加到Else If中的DIV时为Null,javascript,html,if-statement,Javascript,Html,If Statement,我正在创建一个纸牌游戏,用户将选择3张牌,然后将拾取的牌添加到一个名为“chosenCards”的数组中。然后,我根据索引号将卡片打印到一个新的DIV中。我希望基本上能够说“如果chosenCard[0]的DIV类为'card1',则将“一些文本”打印到DIV中 我尝试了各种方法来实现这一点,但无法找出如何在数组中比较div或使用switch用例的方法 我最后尝试将卡添加到div中,然后检查div中是否包含卡的类&如果它确实打印出“一些文本”,但没有工作,因为它会给我一个错误“无法读取null的

我正在创建一个纸牌游戏,用户将选择3张牌,然后将拾取的牌添加到一个名为“chosenCards”的数组中。然后,我根据索引号将卡片打印到一个新的DIV中。我希望基本上能够说“如果chosenCard[0]的DIV类为'card1',则将“一些文本”打印到DIV中

我尝试了各种方法来实现这一点,但无法找出如何在数组中比较div或使用switch用例的方法

我最后尝试将卡添加到div中,然后检查div中是否包含卡的类&如果它确实打印出“一些文本”,但没有工作,因为它会给我一个错误“无法读取null的属性'classList'

编辑/更新:

我更改了代码,通过执行以下操作来搜索子元素:

if(document.querySelector(“#cardResults.card1”).classList.contains(“card1”))

但是,当我添加一个else时,同样的错误再次发生。 这是正在破坏它的代码:

         document.getElementById("re").innerHTML = "The Hermit suggests that you are in a phase of introspection where you are drawing your attention inwards and looking for answers within. You are in need of a period of inner reflection, away from the current demands of your position.";
         }
         else if(document.querySelector("#cardResults .card2").classList.contains("card2")){
           document.getElementById("re").innerHTML = "You are a fool";
         }

         else {
          document.getElementById("re").innerHTML = "error";
         }
我预计结果如下所示:

结果

你对自己的感觉:


[隐士卡片]:“some text”

类列表是附加到元素的类列表,因此如果您有
#cardResults.card1
,它将起作用。相反,您希望使用
if(document.querySelector(“#cardResults.card1”))
当您在子元素中搜索类时。

类列表是附加到元素的类的列表,因此如果您有
#cardResults.card1
,则可以使用
if(document.querySelector(“#cardResults.card1”))
在子元素中搜索类时。

这是因为
cardResults
不是类,而是id。请使用
querySelector(“#cardResults”)
取而代之。@GetOffMyLawn很好!我只是尝试了一下,但也没用。。这是因为
cardResults
不是一个类,而是一个id。请使用
querySelector(“#cardResults”)
取而代之。@GetOffMyLawn捕捉得好!我只是尝试了一下,但也不起作用..没有考虑子元素。谢谢!不知什么原因,当我把这个放在if-else中时,它又不起作用了…@Chris如果你只是从我的答案中复制,可能是因为我没有关闭括号,编辑了answer@Chris就我所看到的你不需要
.classList.contains(“card1”)
-if.card1“没有找到,那么它将返回一个错误的值。只是尝试了一下,它成功了!非常感谢。我假设它是不需要的,因为它已经在querySelector?中成为目标,没有考虑子元素。非常感谢。出于某种原因,当我把这个放在一个if-else中时,它又不起作用了…@Chris如果你只是从我的答案中复制,那可能是因为我没有关闭括号,编辑了answer@Chris据我所知,您不需要
.classList.contains(“card1”)
-if.card1”找不到,那么它将返回一个错误的值。只是尝试了一下,它工作了!非常感谢。我假设它不需要,因为它已经在querySelector中成为目标了?