将字符串拆分为单词会导致字母分裂

时间:2014-07-16 09:32:15

标签: javascript jquery

我是Javascript的新手。我需要拆分这种格式的字符串:

["Man1","SKC2","fsdfds3","ETA4","Star5","SCity 6","TESTGB11"] 

并创建select标签的选项。我尝试了下面的代码

$.each(data, function (index, value) {                  
    $('#bu_group').append($('<option/>', { 
        value: value,
        text : value 
    }));
});   

但我把字符串拆分为字母。 我该怎么做才能拆分字符串以获取选项

<option>Man1</option>
<option>SKC2</option>

注意:有时候这个字符串也可能包含空格。

5 个答案:

答案 0 :(得分:5)

如果data是你的字符串,那么将它从JSON解析为JavaScript字符串数组,然后迭代它:

var yourArray = JSON.parse(data);
$.each(yourArray, function(index, value) {
    $('#bu_group').append($('<option/>', { 
        value: value,
        text : value 
    }));
});

答案 1 :(得分:1)

尝试先传递数组,然后将翻译过的数组作为html字符串传递,

$('#bu_group').html($.map(JSON.parse(data),function(val,i){
  return "<option value="+ val +">" + val + "</option>";
}));

DEMO

答案 2 :(得分:1)

由于data实际上来自您的服务器通过ajax,您只需指定正确的dataType。

无论

$.ajax({dataType: 'json', ...}).done(function(data){
   //data will be parsed
});

或者

$.getJSON(url).done(function(data){
   //data will be parsed
});

或者将服务器配置为返回正确的mime类型(application / json)

答案 3 :(得分:0)

如果您的数据是

["Man1","SKC2","fsdfds3","ETA4","Star5","SCity 6","TESTGB11"]

那么没有问题,所以我认为你的数据是:

'["Man1","SKC2","fsdfds3","ETA4","Star5","SCity 6","TESTGB11"]'

你必须解析&#39;它

当你使用jQuery时,一个选项就是这样parseJSON

var parsed_array = $.parseJSON('["Man1","SKC2","fsdfds3","ETA4","Star5","SCity 6","TESTGB11"]');

这样做之后,你可以成功地做到:

$.each(parsed_array, function (index, value) {                  
                        $('#bu_group').append($('<option/>', { 
                            value: value,
                            text : value 
                        }));
}); 

答案 4 :(得分:0)

如果您的数据为

var data=["Man1","SKC2","fsdfds3","ETA4","Star5","SCity 6","TESTGB11"]

然后你可以迭代这个var,不是吗?

var data=["Man1","SKC2","fsdfds3","ETA4","Star5","SCity 6","TESTGB11"];

for(i=0;i<data.length;i++) {                  
    $('#bu_group').append($('<option/>', { 
        value: data[i],
        text : data[i] 
    }));
}; 

JSFiddle here