从一个数组中填充项目到不同的选项标签
问题描述:
我想通过使用jQuery将通过ajax返回的一些用户名加载到下拉菜单中。结果正在成功进入下拉菜单,但所有数据都只进入一个选项标签。我希望数据位于不同的选项标签中。从一个数组中填充项目到不同的选项标签
目前的下拉菜单看起来像这样
1,名称,NAME3,NAME4
但我想为:
名1
名2
NAME3
姓名4
下拉哪里我把结果:
<div class="form-group">
<select name="name" class="form-control" id="employee_select">
</select>
</div>
的jQuery:
//send value via GET to URL
var get_request = $.ajax({
type: 'GET',
url: '/users',
data: {User:User}
});
// handle response
get_request.done(function(data){
// Data returned
dataReturned = data;
// Log data
console.log($.type(dataReturned)); // response is string in the form of
// Name1
// Name2
// Convert to an array
dataArray = [dataReturned]
// Create a new array
newArray = [];
// Populate newArray with items
for(i=0;i<dataArray.length;i++){
if(typeof(dataArray[i])=='string'){
newArray.push(dataArray[i])
}
}
//console.log(newArray);
console.log($.type(newArray)); // an array is returned in the form of ["Name1,Name2,Name3,Name4"]
// Loop through newArray
$.each(newArray, function(index, value) {
$('#employee_select').append("<option>"+ value + "</option>");
})
谢谢。
答
有可能这样做的更优雅的方式,但...
如果你所推的每个结果到一个数组,然后在数组跑了一个循环的每个项目检查,看看每一项都是一个字符串。那个成功的结果,你推入最后一个数组。
for(i=0;i<array.length;i++){
if(typeof(array[i])=='string'){
newArray.push(array[i])
}
}
+0
感谢您的帮助! 我已更新我的问题。你能帮忙吗? – LinuxUser
你需要修复的结果从用户..份额未来如何从URL – guradio
检查您的返回的字符串不包含\ n \ n通过的结果 - 这时候你把它分解使用\ N - 会创建empy数组元素,然后将其传递给选项。如果您使用console.log(str),那么您将能够在其拆分之前看到返回的数据。 – gavgrif