2013-08-14 3 views
-9

У меня есть массив, как следуетКак перебрать переменную JavaScript массива

countries: [{ 
     "name": "Afghanistan", 
     "cca2": "AF", 
     "calling-code": "93" 
    }, 
    //{"name":"Åland Islands","cca2":"AX","calling-code":"358"}, 
    { 
     "name": "Albania", 
     "cca2": "AL", 
     "calling-code": "355" 
    }, { 
     "name": "Algeria", 
     "cca2": "DZ", 
     "calling-code": "213" 
    }, { 
     "name": "American Samoa", 
     "cca2": "AS", 
     "calling-code": "1684" 
    }, { 
     "name": "Andorra", 
     "cca2": "AD", 
     "calling-code": "376" 
    }, { 
     "name": "Angola", 
     "cca2": "AO", 
     "calling-code": "244" 
    }, { 
     "name": "Anguilla", 
     "cca2": "AI", 
     "calling-code": "1264" 
    }, { 
     "name": "Antigua and Barbuda", 
     "cca2": "AG", 
     "calling-code": "1268" 
    } 
    ] 

я хочу перебирать этот список и создать список выбора, как следует

<select> 
    <option value="AF">Afganisthan</option> 
    .... 
<select> 

я сделал это

for (var i = 0; i < countries.length; i++) { 
    out += "<option value='" + countries[i].cca2 + "'>" + countries[i].name + "</option>"; 
} 

но ничего не отображается.

+1

В какой части вы застряли? – acdcjunior

+0

Попробуйте использовать '.foreach'. – user1596138

+0

Возможный дубликат [Доступ/процесс (вложенные) объекты, массивы или JSON] (http://stackoverflow.com/questions/11922383/access-process-nested-objects-arrays-or-json) – bfavaretto

ответ

0

Попробуйте это:

for(var i=0;i<countries.length;i++){ 
    $('select').append('<option value="'+countries[i].cca2+'">'+countries[i].name+'</option>'); 
} 
0
<select id='mySelect'><select> 

$.each(countries, function(i, e){ 
    $('#mySelect').append("<option value='" + e.cca2 +"'>" + e.name + "</option>"); 
}) 

Demo

0
var obj = eval('{' + str + '}'); //where str is "countries: ..." 
    $('<select>').appendTo(document.body);  
    for(var i = 0; i < obj.countries.length; i++) 
    { 
     $('<option>').val(obj.countries[i].cca2).text(obj.countries[i].name).appendTo('select'); 
    } 
0
var out = '<select>'; 

countries.forEach(function(country) { 
    out += '<option value=' + country.cca2 + '>' + country.name + '</option>'; 
}); 

out += '</select>'; 
0

попробуйте ниже яваскрипта фрагмент кода

var countryJSON= eval('{'+countryString+'}'); 
$('<select>').appendTo("#yourForm");  
for(i=0;i<countryJSON['countries'].length;i++){  
$('<option>').val(countryJSON.countries[i].cca2).text(countryJSON.countries[i].name).appendTo('select'); 
} 
Смежные вопросы