2016-09-30 70 views
0

我想填充'#shuttle-dst'(用于穿梭目的地)在下面的代码中选择元素,并使用基于给定配置对象的值的选项。这段代码完成了我想要的任务,它首先清除先前存在的选项的select元素,然后循环遍历configs对象的指定属性,然后在控制台中输出名称属性的值,在这个特定的配置五个:使用选项和值填充选择元素

Admin User 
MPR User 
SAMHSA User 
States User 
All States User 

但是这个代码不填充所有五个分配的值的选择元素,只是最后一个 - “所有国家的用户”。为什么?

function loadConfigurations(configs){ 
    $('#shuttle-dst').empty(); 
    for(var i=0; i < configs.assigned.length; i++){ 
    var item = configs.assigned[i]; 
    console.log(item.name); 

     $.each(item, function(){ 
      $('#shuttle-dst').html('<option value="' + item.value + '">' + item.name + '</option>'); 
     }); 
    } 
} 
+0

为什么你调用$。每()? – thanksd

+0

因为我想迭代每个项目并将它们添加到选择元素('#shuttle-dst')作为选项。 –

+0

但是不是for循环已经遍历每个项目? – thanksd

回答

0

首先,您不需要拨打$.each(),因为您已经在每个项目的for循环中。

为了解决您的问题,您应该将#穿梭DST元素,而不是html()上使用append()append()增加了新的元素来电元素,html()代替主叫方元素的HTML)。

例如:在项目

function loadConfigurations(configs) { 
    $('#shuttle-dst').empty(); 
    for (var i=0; i < configs.assigned.length; i++) { 
     var item = configs.assigned[i]; 
     $('#shuttle-dst').append(
      '<option value="' + item.value + '">' + item.name + '</option>' 
     ); 
    } 
} 
相关问题