Help passing a simon game from jQuery to vanilla JS

Hi Everyone!
Long story short, I made this Simon Game in a bootcamp a month ago in jQuery, but the days pass and I started to feel the necesity of translate it to pure vanilla javaScript.
the thing is that I feel stuck in the last part, when I have to check the answers of the game and add that to the gamePatern array and userChosenPattern.

here is the main part in jQuery

function nextSequence() {
  userClickedPattern = [];
  level++;
  $("#level-title").text("level " + level);
  var randomNumber = Math.floor(Math.random() * 4);
  var randomChosenColour = buttonColors[randomNumber];
  gamePattern.push(randomChosenColour);
  $("#" + randomChosenColour)
    .fadeIn(100)
    .fadeOut(100)
    .fadeIn(100);
  playSound(randomChosenColour);
}

$(".btn").click(function () {
  var userChosenColor = $(this).attr("id");
  userClickedPattern.push(userChosenColor);
  playSound(userChosenColor);
  animatePress(userChosenColor);
  checkTheAnswer(userClickedPattern.length - 1);
});

function checkTheAnswer(currentLevel) {
  if (gamePattern[currentLevel] === userClickedPattern[currentLevel]) {
    console.log("success");
    if (userClickedPattern.length === gamePattern.length) {
      setTimeout(function () {
        nextSequence();
      }, 1000);
    }
  } else {
    $("body").addClass("game-over");
    setTimeout(function () {
      $("body").removeClass("game-over");
    }, 200);
    gameOverAudio();
    $("#level-title").text("Game Over, Press Any Key to Restart");
    $("#level-title").css("font-size", "2rem");
    startOver();
  }
}

function startOver() {
  level = 0;
  gamePattern = [];
  started = false;
}

and here is the same part but in vanilla JS

// generete the next sequence
function nextSequence() {
  var randomNumber = Math.floor(Math.random() * 4);
  var randomChosenColour = buttonColors[randomNumber];
  gamePattern.push(randomChosenColour);
  let animationBtn = document.querySelector("#" + randomChosenColour);
  animationBtn.classList.add("FadeInFadeOut");
  setTimeout(() => {
    animationBtn.classList.remove("FadeInFadeOut");
  }, 50);
  playSound(randomChosenColour);
}

// here we detect which button is pressed by the user

var bTn = document.getElementsByClassName("btn");
document.querySelectorAll(".btn").forEach((bt) => {
  bt.onclick = () => {
    let userChosenColor = bt.id;
    userClickedPattern.push(userChosenColor);
    playSound(userChosenColor);
    animatePress(userChosenColor);
    checkTheAnswer(userClickedPattern.length - 1);
  };
});

// check the answer and dynamic of the game
const checkTheAnswer = (currentLevel) => {
  if (gamePattern[currentLevel] === userClickedPattern[currentLevel]) {
    console.log("succes");
    if (userClickedPattern.length === gamePattern.length) {
      setTimeout(() => {
        nextSequence();
      }, 1000);
    }
  } else {
    body.classList.add("game-over");
    setTimeout(() => {
      body.classList.remove("game-over");
    }, 200);
    gameOverAudio();
    levelTitle.innerHTML = `Game Over, Press Any Key to Restart`;
    levelTitle.style.fontSize = "2rem";
    startOver();
  }
};

const startOver = () => {
  level = 0;
  gamePattern = [];
  started = false;
};

Also here is the game in my codepen, it’s without the sounds for obvious reasons.

https://codepen.io/alandittler/full/KKzQKvJ

what is the difference between
("#level-title") and ("#" + randomChosenColour) ?