我无法拆分Months
的值并使用.each
将每个值放入选择框。我使用了以下代码,split()
根本没有任何效果。我有一个带有两个选项的选择框,但是值并没有分成每个选项。
JSON数据:
[{"Title":"DataTitle","Months":"January,February","Location":"Africa"}]
代码:
var item_html ='';
$.ajax({
url: "http://www.jsonfile.com/json",
success: function (data) {
item_html = pData(feedformat,data);
$('.displayarea').append(item_html).slideDown();
},
error: function ()
});
function pData(type, data) {
switch(type) {
case 'Case1':
item_html += '<h3>'+item.Title+'</h3>;'
if(item.Months.length !== 0) {
var Months = item.Months.split(",");
item_html += '<select>';
$.each(Months,function(i){
item_html += '<option>'+Months+'</option>';
});
item_html += '</select>';
}
item_html += '<h3>'+item.Location+'</h3>';
上面代码的结果是:
<select><option>January,February</option><option>January,February</option></select>
我正在寻找的是
<select><option>January</option><option>February</option></select>
任何帮助都将不胜感激。
答案 0 :(得分:2)
改变这个:
$.each(Months,function(i){
item_html += '<option>'+Months+'</option>';
});
为:
$.each(Months,function(i, month){
item_html += '<option>'+month+'</option>';
});
您将所有月份都放在每个选项中,而不仅仅是迭代中的当月。
答案 1 :(得分:1)
试试这个:
$.each(Months,function(i){
item_html += '<option>'+Months[i]+'</option>';
});
而不是
$.each(Months,function(i){
item_html += '<option>'+Months+'</option>';
});
另一件事是你的JSON item
是一个数组对象。
item =[{"Title":"DataTitle","Months":"January,February","Location":"Africa"}];
item_html ="";
item_html += '<h3>'+item[0].Title+'</h3>';
if(item[0].Months.length !== 0) {
var Months = item[0].Months.split(",");
item_html += '<select>';
$.each(Months,function(i){
item_html += '<option>'+ Months[i] +'</option>';
});
//or
//$.each(Months,function(i, month){
// item_html += '<option>'+ month +'</option>';
//});
item_html += '</select>';
}
item_html += '<h3>'+item[0].Location+'</h3>';
$('.displayarea').append(item_html).slideDown();
以下是 Demo
答案 2 :(得分:1)
试试这个: -
var Months = item.Months.split(",");
item_html += '<select>';
$.each(Months,function(i){
item_html += '<option>'+ Months[i] +'</option>';
});
item_html += '</select>';
Months
这是一个数组对象。因此,您需要从迭代中获取当前数组项。
答案 3 :(得分:1)
解决方案......
function pData(type, data) {
switch(type) {
case 'Case1':
item_html += '<h3>'+item.Title+'</h3>;'
if(item.Months.length !== 0) {
var Months = item.Months.split(",");
item_html += '<select>';
$.each(Months,function(i){
item_html += '<option>'+Months.split(",")[i]+'</option>';
});
item_html += '</select>';
}
item_html += '<h3>'+item.Location+'</h3>';