【发布时间】:2018-06-27 12:44:09
【问题描述】:
我有一个带有一个word 和4 个syllables 的练习块。在我的 json 中,它看起来像这样:
{
"main_object": {
"id": "new",
"getExerciseTitle": "TestFrontEnd",
"language": "nl_NL",
"application": "lettergrepen",
"main_object": {
"title": "TestFrontEnd",
"language": "nl_NL",
"exercises": [
{
"word": "huisarts",
"syllables": [
"Huis",
"arts",
"",
""
]
},
{
"word": "voetbal",
"syllables": [
"Voet",
"bal",
"",
""
]
}
]
},
"dataType": "json"
}
}
我想遍历这些word 和syllables,但每个word 都必须在一个练习块中与它们的syllables 保持一致。现在这就是我尝试这样做的方式,但我失败了很多次:
$(document).ready(function () {
$.getJSON('json_files/jsonData_' + ID + '.json', function(json) {
var exercisetitle = json.main_object.getExerciseTitle;
$("#getExerciseTitle").val(exercisetitle);
var exercise = json.main_object.main_object.exercises;
$.map(exercise, function(exercise, i) {
$("#addOpdracht").click();
$(".exerciseGetWordInput_" + i).val(exercise.word)
console.log(exercise.syllables);
$(".sylll" + i).val(exercise.syllables)
});
});
});
为了给你可视化它,它应该看起来像这样
那么我该怎么做才能得到我想要的结果呢?
编辑:我创建音节输入和练习输入的功能:
// This is the function that creates the exercise inputs
function getWordInput(id, cValue) {
cValue = cValue || '';
var wInput = $('<input/>', {
'class': 'exerciseGetWordInput_' + id + ' form-group form-control ExerciseGetWordInput',
'type': 'text',
'name': 'question_takeAudio_exerciseWord['+ exerciseAudioInput +']',
'placeholder': 'Exercise',
'id': 'exerciseGetWordInput',
'required': true
});
return wInput;
}
// This is the function that creates the syllable inputs.
function getWordPartInput(id, cValue){
cValue = cValue || '';
var wpInput = $('<input/>', {
'class': 'form-group form-control syllable sylll' + TT ++,
'type': 'text',
'value': cValue,
'placeholder': 'Syllables',
'name': 'Syllablescounter['+ SyllablesID++ +']'
});
return wpInput;
}
【问题讨论】:
-
了解
exerciseGetWordInput_和sylll的设置方式会有所帮助。似乎应该是每个练习的练习GetWordInput_1,然后是syll_1_1、syll_1_2、syll_1_3和syll_1_4(第一个数字代表练习,第二个数字代表音节)。这样您就可以轻松地将练习和音节保持在一起 -
您可能还需要另一个循环来遍历练习中的音节数组。
标签: javascript jquery