在jquery中迭代for循环中的map

时间:2013-12-03 07:02:20

标签: jquery ajax

您正在使用ajax调用来获取地图。它的工作正常。 我想在表格中只显示两个td允许剩余的地图值移到下一行

我的代码在这里

我的输出就像这样

enter image description here

我希望每td

两个tr
s = s + "<tr class='fc-staff'>";
$.each( msg, function( key, value ) {
  alert( key + ": " + value );
   s = s + "<td >" + value
    + "</td> ";
});

它工作正常但所有值都在单tr中。我想要这样的东西

for ( var j = 0; j < limit; j += 2) {
s = s + "<tr class='fc-staff'>";
for ( var i = j; i < j + 2; i++) {
  alert("value " + i + "/" + j+" val :"+msg[i,value]);
    if (msg[i] != undefined) {  
s = s + "<td >" + msg[i,value]
    + "</td> ";
}
}
    s = s + "</tr>";

注意:以上代码我尝试列表工作正常,因为我除了但不知道与地图有关。  请帮帮我

3 个答案:

答案 0 :(得分:1)

如果我理解你是正确的,你想要遍历键/值对并将所有值放在分开的td中。这些td是你想要的tr。你可以尝试类似的东西:

var html;

var tr = $("<tr/>");

$.each( msg, function( key, value ) {

    tr.append($("<td/>").html(value));

});

html += tr.html();

答案 1 :(得分:1)

你只需要结合这两种方法。 Here是一个工作小提琴。

s = "<tr class='fc-staff'>";
var count = 0;
$.each(msg, function(key, value) {
    if (count > 1 && count % 2 === 0) {
        s += "</tr><tr class='fc-staff'><td>" + value + "</td>";
    } else {
        s = s + "<td >" + value + "</td> ";
    }
    count++;
});

答案 2 :(得分:1)

你可以试试这个

var counter=0;
s = s + "<tr class='fc-staff'>";
$.each( msg, function( key, value ) {
if(counter<2)
{
   ++counter;
   s = s + "<td >" + value   + "</td> ";
}
else
{
    counter=1;
    s = s + "</tr><tr class='fc-staff'>";
    s = s + "<td >" + value   + "</td> ";
}
});
s = s + "</tr>";