Как устранить ошибку Uncaught TypeError: не удается прочитать свойство '0' значения undefined для генератора случайных цитат? - PullRequest
0 голосов
/ 09 июля 2020

У меня есть фрагмент кода генератора случайных котировок jQuery, который выдает следующую консольную ошибку:

Когда я нажимаю кнопку, первая цитата отображается успешно, но затем останавливается.

Вот мой код:

jQuery(document).ready(function(){
      jQuery("#change").click(function(){
var quotes = [
  ["It Crowd" ],
  ["Black Books"],
  ["Still Game"],
  ["quote 4"],
];
  // generate random integer< array.length
var number = Math.floor(Math.random()* (quotes.length+1));
//get the elements or just put them in the document write below
var showQuotes = quotes[number][0];
        
  //                      
  jQuery("#quotecontent").fadeOut("medium",function(){
           var newer = jQuery(
             '<div id="content"><p id="quote">'  + showQuotes + '</p></div>' ); 
        jQuery(this).replaceWith(newer);
      jQuery('#quotecontent').fadeIn("medium");
      });                          
      });    
});

Вот HTML

<div id="quotecontent">
<p id="quote">This is the original quote</p>
</div>
 <div id="btn-container">
<button id="change">Press</button>
      </div>

И это сообщение об ошибке:

Uncaught TypeError : Невозможно прочесть свойство '0' неопределенного

Я знаю, что это относится к этой части кода:

var showQuotes = quotes[number][0];

Но я просто не уверен, почему это не работает поскольку я немного новичок в массивах. Если бы кто-то мог любезно помочь мне понять, почему это не работает, я был бы очень признателен !!!

Codepen, если это поможет: https://codepen.io/kiaramelissa/pen/XWXqgVa

1 Ответ

0 голосов
/ 09 июля 2020

Попробуйте удалить [0] в этой строке:

var showQuotes = quotes[number][0];

кавычки [число] вернет строку, хранящуюся в этой позиции. С этим [0] вы никогда ничего не найдете, так как кавычки [число] это конечное значение, а не массив.

Изменить:

Изменить:

var quotes = [
 ["It Crowd" ],
 ["Black Books"],
 ["Still Game"],
 ["quote 4"],
];

На :

var quotes = [
  "It Crowd",
  "Black Books",
  "Still Game",
  "quote 4"
];
...