So habe ich eine JSON-Datei, die ich Quiz-Fragen erhalten muss. Momentan speichere ich die Fragen einfach in einem Array als Objekt. Jedes Frageobjekt hat "Text" (die Frage selbst), "Auswahl" (ein Array möglicher Antworten) und "Antwort" (ein Int, der der Position der richtigen Antwort entspricht).Der Versuch, eine Liste in JQuery aus einer JSON-Datei zu füllen. Wie zu debuggen?
Wie kann ich überprüfen, ob die Frageobjekte richtig gespeichert sind? Ich möchte eine Liste von Fragen erstellen und habe versucht, meine Liste mit Fragen [i] .text zu füllen und es hat nicht funktioniert. Ich habe Firebug installiert, um zu debuggen, was vor sich ging, aber ich bin mir nicht ganz sicher, wie ich es am besten nutzen kann.
Die JSON ist in diesem Format:
{
"text": "What does the author least like about Eclipse?",
"choices": [
"The plugin architecture.",
"FindBugs.",
"Refactoring.",
"The Run As menu."],
"answer": 3
}
Meine JavaScript-Datei:
$(document).ready(function(){
var questions=[];
$.getJSON('quiz.js',function(data){
var i=0;
for(i=0;i<data.length;i++){
questions[i]=[String(data[i].text),String(data[i].choices),int(data[i].answer)];
}
var list = $('#list')
$(questions).each(function(_, text) {
var item = $('<li/>')
var link = $('<a/>').html(text)
link.click(function() { alert(text) })
item.append(link)
list.append(item)
})
$('#list').listview('refresh')
});
})
schließlich einige HTML:
<div data-role="content">
<ul id="list" data-role="listview">
</ul>
</div>
Ich weiß, es ist eine lange Frage, aber ich schätze jede Hilfe. Das Endziel besteht darin, eine Liste mit Fragen zu erstellen, die beim Klicken die Antwortmöglichkeiten anzeigt und einen Toast ausgibt, um den Benutzer zu benachrichtigen, wenn die ausgewählte Option korrekt ist oder nicht. Ich möchte auch die Frage in der Liste in grün hervorheben, wenn sie richtig beantwortet wird, und ansonsten rot.
EDIT:
Arbeitscode:
$(document).ready(function(){
$.getJSON('quiz.js',function(data){
var questions = data;
var list = $('#list')
$(questions).each(function(index, object) {
$.each(object, function(key, value){
if(key === 'text'){
//do something with qustion
var item = $('<li/>')
var link = $('<a/>').html(value)
link.click(function() { alert(value) })
item.append(link)
list.append(item)
$('#list').listview('refresh')
}
});
});
});
});
Sehen Sie eine Fehlermeldung in Firebug Consol? –
Nein, ich weiß einfach nicht, wie ich es benutzen soll. Ich denke, mein Fragen-Array wird richtig gefüllt, aber ich kann es nicht sagen. Ich sehe das: http://i.imgur.com/EqyCw1Z.png?1 –