Могу ли я изменить множество элементов HTML с помощью массива в Javascript?

#javascript #arrays #switch-statement

#javascript #массивы #оператор переключения

Вопрос:

Я хочу изменить содержимое двух HTML-элементов одновременно, когда пользователь нажимает на кнопку. То, на что изменяется содержимое элементов, основано на случайном числе, которое затем будет обращаться к массивам, определенным в функции.

Это то, что я хочу, но в настоящее время я не получаю никаких изменений при нажатии на кнопку (которая вызывает функцию ‘deal ()’).).

Кто-нибудь может дать мне какой-нибудь совет?

Вот мой код —

 function createCard(){
   var shuffle = Math.floor(Math.random()*2)  1;

   var title = document.getElementById("cardTitle");
   var text = document.getElementById('cardText');
   var button = document.getElementById('cardButton');


   var cardTitle = ["Bacon", "Hot Dog Lattice"];
   var cardText = ['Frabdious Day', 'Calee, Calay',];

   var cardId = [cardTitle, cardText];


  switch (shuffle) {
    case 1:
      title.innerHTML = cardId(cardTitle[0]);
      text.innerHTML = cardId(cardText[0]);
      break;
    case 2:
      title.innerHTML = cardId(cardTitle[1]);
      text.innerHTML = cardId(cardText[1]);
      break; 
    default:
      title.innerHTML = "Oops";
      text.innerHTML = "Whoopsie";
  break;
 }
}


function deal(){
  createCard();
}
  

Комментарии:

1. Полное удаление CardID должно исправить это

Ответ №1:

Это может оказаться лучшим решением:

 function createCard(){
   var shuffle = Math.floor(Math.random()*2);
   var cards = [
     {
       title: "Bacon",
       text: "Frabdious Day"
     },
     {
       title: "Hot Dog Lattice",
       text: "Calee, Calay"
     }
   ];
  
  var shuffledCard = cards[shuffle];
  
  if (!shuffledCard){
    shuffledCard = {
       title: "Oops",
       text: "Whoopsie"
    }
  }
  
  var title = document.getElementById("cardTitle");
  var text = document.getElementById('cardText');
  var button = document.getElementById('cardButton');

  title.innerHTML = shuffledCard.title;
  text.innerHTML = shuffledCard.text;
  
 
}


function deal(){
  createCard();
}  
 <div id="cardTitle">Start value</div>
<div id="cardText">Start value</div>
<button id="cardButton" onClick="deal()">Deal</button>