クイズの質問を取得するために必要な JSON ファイルがあります。今のところ、質問をオブジェクトとして配列に格納しているだけです。各質問オブジェクトには、'text' (質問自体)、'choices' (可能な回答の配列)、'answer' (正解の選択肢の場所に対応する int) があります。
質問オブジェクトが正しく保存されていることを確認するにはどうすればよいですか? 質問のリストを作成したいのですが、リストに question[i].text を入力しようとしましたが、うまくいきませんでした。何が起こっているのかをデバッグするために Firebug をインストールしましたが、それを最大限に活用する方法が完全にはわかりません。
JSON の形式は次のとおりです。
{
"text": "What does the author least like about Eclipse?",
"choices": [
"The plugin architecture.",
"FindBugs.",
"Refactoring.",
"The Run As menu."],
"answer": 3
}
私の JavaScript ファイル:
$(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')
});
})
最後に、いくつかの HTML:
<div data-role="content">
<ul id="list" data-role="listview">
</ul>
</div>
長い質問だと思いますが、助けていただければ幸いです。最終的な目標は、クリックすると回答の選択肢が表示され、選択したオプションが正しいかどうかをユーザーに通知するトーストを提供する質問のリストを作成することです。また、正しく答えられた場合は緑で、そうでない場合は赤で、リスト内の質問を強調表示したいと思います。
編集:
作業コード:
$(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')
}
});
});
});
});