2013-12-12 94 views
0

data.MaritalStatuses包含婚姻狀態的多個值,我希望它們將每個婚姻狀態值的span標記包裹起來,並將它們追加到td#婚姻狀態中。在這種情況下,它將追加值而不將它們包裹在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

只考慮TD和data.MaritalStatuses 我只是想這一點: ​​ MaritalStatus1 MaritalStatus2馬裏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

如何檢查data.MaritalStatuses的長度是否應該大於零? –

+0

@AliShahzad如果長度爲0,那麼你想做什麼...不顯示「tr」? –

+0

如果長度爲零我想在td中顯示「無」而不是值 –

0

Asuming data.MaritalStatusesArray,你會使用Array.prototype.mapArray.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>');   
}); 
相關問題