我正在使用此代码使用ajax将CSV导入var,然后拆分由“\ n”分隔的信息,然后填充表单中的选择框。
CSV几乎是平的,只有一列有几行。添加了一个监视进度的警报..一切正常,除了填充组合框,而不是填充字符串内容,它填充行数,由于某种原因,数组不记录字符串而是行号。 / p>
<script>
$.ajax({
url: 'URL CSV',
success: function(data) {
alert(data);
var splitData=data.split("\n");
for(pn in splitData){
alert(splitData);
$('#Entry_ID').append("<option value=\""+pn+"\">"+pn+"</option>");
}
}
});
</script>
(the form combobox code)
<select name="Entry.ID" id="Entry_ID" aria-required="true"></option>
</select>
答案 0 :(得分:0)
您的错误位于“for..in”循环中。像这样的代码:
var arr = ["q", "w", "e"];
for (var i in arr) {
console.log(i)
}
将输出:
0
1
2
for..in循环获取对象中每个项目的键,并将其分配给var。在一个数组中,关键是它的位置。
String的方法split将返回包含所有项的数组。要遍历splitData数组,您可以:
for (var i = 0; i < splitData.length; i++) {
alert(splitData[i]);
$('#Entry_ID').append("<option value=\"" + splitData[i] + "\">" +
splitData[i] + "</option>");
}
或
splitData.forEach(function (item) {
alert(item);
$('#Entry_ID').append("<option value=\"" + item + "\">" + item + "</option>");
});