2017-03-17 82 views
0

我有一個select元素,我想從javascript中添加選擇選項。我有一個ajax方法,這個方法返回JSON對象;如何從JSON填充下拉項目?

"{"serverTypes":["WINDOWS","LINUX"]}" 

我想添加這個JSON的選項。有沒有辦法做到這一點?

<select id="serverTypes" name="serverType" class="form-control"></select> 

編輯:
設置值不工作

$('#serverTypes').val(jsonData); 

回答

5

你可以通過JSONappend()值循環:

var json = { 
 
    "serverTypes": ["WINDOWS", "LINUX"] 
 
}; 
 
for (var x = 0; x < json.serverTypes.length; x++) { 
 
    var option = json.serverTypes[x]; 
 
    $('#serverTypes').append('<option value="' + option + '">' + option + '</option>') 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="serverTypes" name="serverType" class="form-control"></select>

2

var data = {"serverTypes":["WINDOWS","LINUX"]}; 
 
var serverTypes = data.serverTypes; 
 

 
var option; 
 
for (var i in serverTypes) { 
 
    if (serverTypes.hasOwnProperty(i) && i!="length"){ 
 
     option = $('<option></option>'); 
 
     option.val(serverTypes[i]); 
 
     option.text(serverTypes[i]); 
 

 
     $("#serverTypes").append(option); 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="serverTypes" name="serverType" class="form-control"></select>

+0

只是我曾經通過陣列看到循環惡化的方式! –

+0

@ibrahimmahrir你有沒有在純JS中看到更好的實現,也在IE <8上工作? –

+0

「for(var i = 0; i