如何使用jquery从数据库中动态分割加载到下拉列表的数据?

时间:2015-02-20 15:25:07

标签: jquery html

我有一个下拉列表,其中使用jquery从数据库动态填充选项。代码是:

    $('.Input').html("");
    for(i=0, len=data.length; i<len; i++){
    $('.Input').append('<option>' + data[i].abc  + '</option');
                        }

HTML是:

<select class="Input"></select>     

当数据本身被换行分隔时,这非常有效。当值为数据库时,我面临一个问题,存储为abc = [x,y,z]。下拉列表将其显示为x,y,z,而不是将它们设置为换行符。

我尝试使用

var listItems = "<option value=''> </option>";
$.each(data[0].abc, function(index, title) {
listItems+= "<option value='" + title+ "'>" + title+ "</option>";});
$("#selectItems").html(listItems);

和我对应的HTML为:

<select id="selectItems"></select> 

但在这种情况下,如果它是数据库中的单个选项,则该选项将按其字母拆分。例如,APPLE将以A P P L E的形式出现,每个字母都在一个新行中。

关于我能做什么的任何建议?

1 个答案:

答案 0 :(得分:1)

Javascript可以与arrauy元素一样使用与字符串中的字符相同的方式。 您应该检查您拥有的数据类型。

我还没有说明你的例子你想要转换的数组在哪里(数据或数据[0] .abc,或者数据是一个带有对象的数组,你希望每个元素都是abc,...)

也许这个例子可以给你一个想法:

var listItems = "<option value=''> </option>";

if( typeof data === 'string' ) {
   listItems+= "<option value='" + data+ "'>" + data+ "</option>";
} else {
   $.each(data, function(element) {
      listItems+= "<option value='" + element.abc+ "'>" + element.abc+ "</option>";
   });
}
$("#selectItems").html(listItems);