Не удается прочитать свойства набора данных

#javascript #html

#язык JavaScript #HTML

Вопрос:

Я ломал голову над этой проблемой, она не будет считывать данные внутри файла json, в нем говорится об этой ошибке

 Uncaught TypeError: Cannot read properties of undefined (reading 'Messages') at showDataset (Week 11 Assignment.html:38) at onload (Week 11 Assignment.html:83)  

Задание showDataset @ Неделя 11.html:38 загрузка @ Задание на 11-ю неделю.html:83

 lt;!DOCTYPE htmlgt; lt;headgt; lt;meta charset="utf-8"gt;  lt;scriptgt;  var i=0;    var xmlhttp;  var Quotes;   function loadJSON()   {   xmlhttp = new XMLHttpRequest();  xmlhttp.onreadystatechange = HandleData;    xmlhttp.open("GET","Quotes.json", true);    xmlhttp.send();  }     function HandleData()  {    if (xmlhttp.readyState==4 amp;amp; xmlhttp.status==200)    {   Quotes = eval('('   xmlhttp.responseText   ')');  showDataset();  }  }   function showDataset()  {  var x  for (x = 0; x lt; Quotes.Messages.length; x  )  {  let p = document.createElement('p')   p.innerHTML = "lt;pgt;"  Quotes.Messages[x].datetime   " : "  Quotes.Messages[x].Note   " By : "   Quotes.Messages[x].Username   "lt;/pgt;";  if(i % 2)  {  p.style.background = "yellow";  }  i  ;  document.body.appendChild(p);  }  }   function createParagraph()  {  var someText = document.getElementById('someText').value;   let p = document.createElement('p');  time = getTime()   date = getDate()  p.innerHTML = "lt;pgt;"  date   time   someText   " By : "   Quotes.Messages[0].Username  "lt;/pgt;";  if(i % 2)  {  p.style.background = "yellow";  }  i  ;  document.body.appendChild(p);  }   function getDate()  {  var currentdate = new Date();  var date = currentdate.getFullYear()   "-"   currentdate.getMonth()   "-"   currentdate.getDate()   " ";  return date;  }   function getTime()  {  var currentdate = new Date();  var time = currentdate.getHours()   ":"   currentdate.getMinutes()  ":"   currentdate.getSeconds()   " : ";  return time;  }  lt;/scriptgt; lt;/headgt;  lt;body id="page" onload="showDataset()"gt; Examplelt;/brgt; Sample Textlt;/brgt;lt;/brgt; lt;input type="text" name="userText" id="someText" onchange="createParagraph()"gt; lt;/bodygt;  lt;/htmlgt; 

Это набор данных файла Json, он должен выводить время, примечание и имя пользователя на

Функция ShowDataset()

Я понятия не имею об этом, потому что весь код, который я считаю правильным, я довольно новичок в javascript и кодировании

 Messages : [   { "Time" : "1", "Note" :"2" , "Username" : "3"},  { "Time" : "11", "Note" :"21", "Username" : "31"}  { "Time" : "12", "Note" :"22", "Username" : "32"}  ] 

Ответ №1:

Цитата переменной не определена, и вы пытались прочитать сообщения о свойствах undefined. Вот почему у вас есть Ошибка. Теперь я могу сказать вам, что у вас это есть, потому что, когда тело загружено, вы немедленно запускаете showDataset().

Вместо этого вы должны сделать это в своем html

 lt;body id="page" onload="loadJSON()"gt; Examplelt;/brgt; Sample Textlt;/brgt;lt;/brgt; lt;input type="text" name="userText" id="someText" onchange="createParagraph()"gt; lt;/bodygt;  

здесь вы загрузите json, и вы уже можете вызвать хорошую функцию, когда это будет сделано 😉

еще вы пытались прочитать данные, которые не были инициированы.

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

1. я исправил проблему, мое имя папки было слишком длинным, и оно не могло определить набор данных