2013-12-12 4 views
0

data.MaritalStatuses содержит несколько значений семейных статусов, и я хочу, чтобы они обернули тег span для каждого значения семейного статуса и добавили их в td # maritalStatuses. В этом случае это добавление значений без их обертывания в тегах span. Как я могу улучшить это?Перечислить список JSON и обернуть каждый объект списка тегом span

table += '<tr><td id="maritalStatuses">Marital Status</td><td>' + $.each(data.MaritalStatuses, function (index, value) { 
    items.push('<span class="tags">' + value + '</span>'); 
}); $("#maritalStatuses").append(items); + '</td></tr>'; 
+0

ваш код выглядит странно ...:) ... – bipen

+0

подумай тд и data.MaritalStatuses Я просто хочу, чтобы это: MaritalStatus1 MaritalStatus2 Mari talStatus3 ..... –

ответ

1

Вы можете использовать $.map() для создания массива списка статуса, а затем Array.join() создать строку из него

table += '<tr><td id="maritalStatuses">Marital Status</td><td>'; 
if (data.MaritalStatuses.length) { 
    table += $.map(data.MaritalStatuses, function (value) { 
     return '<span class="tags">' + value + '</span>'; 
    }).join('') 
} else { 
    table += 'None'; 
} 
table += '</td></tr>'; 
$("#maritalStatuses").append(table); 
+0

Как проверить длину данных. MaritalStatuses должен быть больше нуля? –

+0

@AliShahzad, если длина равна 0, то что вы хотите сделать ... не отображает 'tr'? –

+0

Если длина равна нулю, я хочу отобразить «Нет» в td вместо значений –

0

Asuming data.MaritalStatuses является Array, вы бы лучше использовать Array.prototype.map и Array.prototype.join вместо из $.each

table += '<tr><td id="maritalStatuses">Marital Status</td><td>' + 
    data.MaritalStatuses.map(function (index, value) { 
     return '<span class="tags">' + value + '</span>'; 
    }).join('') + 
    '</td></tr>'; 
0
var textvalues=''; 
$.each(data.MaritalStatuses, function (index, value) { 
    textvalues+='<span class="tags">' + value + '</span>'; 
}); 
$("#maritalStatuses").append(textvalues) 
1

Попробуйте следующее ...

Html ...

<table border="1"> 
    <tr id="maritalStatuses"> 
     <td >Marital Status</td> 
    </tr> 
</table> 

JQuery ...

$(window).load(function(){ 
var data = {MaritalStatuses:['married','single','married']}, 
    mStatus = ''; 

$.each(data.MaritalStatuses, function (index, value) { 
    mStatus += '<span class="tags">dd' + value + '</span>'; 
}); 

$("#maritalStatuses").append('<td>'+mStatus+'</td>');   
}); 
Смежные вопросы