jQueryを使用してXMLファイルからドロップダウンボックスにデータを入力しようとしています。コードを実行すると、順番に実行されているように見えます。
jQuery:
$("#filterButton").click(function() {
var dropdown = new Array();
$.get('../restaurants.xml', function (xmlFile) {
$(xmlFile).find('restaurant').each(function () {
var found = false;
var $restaurant = $(this);
var type = $restaurant.attr("type");
dropdown.forEach(function(arrayValue){
if(arrayValue == type){
found = true;
}
});
if(found == false){
dropdown.push(type);
}
});
});
$('#potentialRestaruants').append('<select>');
dropdown.forEach(function(arrayValue){
$('#potentialRestaruants').append('<option value="' + arrayValue + '">' + arrayValue + '</option>' );
});
$('#potentialRestaruants').append('</select>');
});
ただし、コードは次の順序で実行されています。
$("#filterButton").click(function() {
var dropdown = new Array();
それから
$('#potentialRestaruants').append('<select>');
dropdown.forEach(function(arrayValue){
$('#potentialRestaruants').append('<option value="' + arrayValue + '">' + arrayValue + '</option>' );
});
$('#potentialRestaruants').append('</select>');
});
それから
$.get('../restaurants.xml', function (xmlFile) {
$(xmlFile).find('restaurant').each(function () {
var found = false;
var $restaurant = $(this);
var type = $restaurant.attr("type");
dropdown.forEach(function(arrayValue){
if(arrayValue == type){
found = true;
}
});
if(found == false){
dropdown.push(type);
}
});
});
コードがこの順序で実行されるのはなぜですか。また、必要な順序でコードを実行するにはどうすればよいですか。