【问题标题】:Populate items from an array into different options tag将数组中的项目填充到不同的选项标签中
【发布时间】:2018-04-01 04:39:43
【问题描述】:

我正在尝试使用 jQuery 将通过 ajax 返回的一些用户名加载到下拉菜单中。结果成功进入下拉菜单,但所有数据仅进入一个选项标签。我希望数据位于不同的选项标签中。

目前下拉菜单如下所示

姓名1,姓名2,姓名3,姓名4

但我想要:

姓名1

名字2

名字3

名字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>");
})

谢谢。

【问题讨论】:

  • 您需要修复来自用户的结果。分享您如何从 URL 传递结果
  • 检查您返回的字符串是否不包含 \n\n - 当您使用 \n 拆分它时 - 将创建 empy 数组元素,然后将其传递到选项中。如果您使用 console.log(str) ,那么您将能够在拆分之前看到返回的数据。

标签: javascript jquery html drop-down-menu


【解决方案1】:

这可能有更优雅的方式,但是......

如果您将每个结果推入一个数组,然后对数组中的每个项目运行一个 for 循环检查每个项目是否是一个字符串,该怎么办。那个成功的结果,你推入一个最终的数组。

for(i=0;i<array.length;i++){
   if(typeof(array[i])=='string'){
     newArray.push(array[i])
 }
}

【讨论】:

  • 感谢您迄今为止的帮助!我已经更新了我的问题。你能帮忙吗?
猜你喜欢
  • 1970-01-01
  • 2019-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-11
相关资源
最近更新 更多