Javascript 使用jqueryxml响应构建html表

Javascript 使用jqueryxml响应构建html表,javascript,jquery,xml,soap,each,Javascript,Jquery,Xml,Soap,Each,我试图遍历来自jQueryAjax请求(以XML形式返回)的响应 有了这个响应,我正在构建一个包含3列的HTML表(能够无限多行)。找到第四个XML节点/“company”后,它应该在表中开始一个新行。 非常感谢JS帮助您确定何时应该添加新行。谢谢 JS示例: /* jQuery Ajax Call here */ success: function(xml){ var trow = $("<tr>"); $(xml).find("Company").eac

我试图遍历来自jQueryAjax请求(以XML形式返回)的响应

有了这个响应,我正在构建一个包含3列的HTML表(能够无限多行)。找到第四个XML节点/“company”后,它应该在表中开始一个新行。 非常感谢JS帮助您确定何时应该添加新行。谢谢

JS示例:

/* jQuery Ajax Call here */

success: function(xml){  
    var trow = $("<tr>");  
    $(xml).find("Company").each(function(index){  
    var cellData = "<td width=\"33%\" valign=\"top\" ><div class=\"container\">"+
"<div class=\"item\"><a href=\"#\" title=\"\" target=\"\">"+ $(this).attr("Name")+ "</a></div>"+  
"<div class=\"description\">"+ $(this).attr("Description") + "</div></div></div></td>";  
    $(cellData).appendTo(trow);   
      });  
      trow.appendTo('#tbl');  
    }  
  });  

});
/*jQuery Ajax调用此处*/
成功:函数(xml){
var trow=$(“”);
$(xml).find(“公司”).each(函数(索引){
var cellData=“”+
""+  
“+$(this.attr(“Description”)+”;
$(cellData).appendTo(trow);
});  
trow.appendTo('tbl');
}  
});  
});
来自web服务的XML响应示例:

<Companies>
    <Company ID="6" Name="Company name 1" Description="Lorem ipsum" />
    <Company ID="22" Name="Company name 2" Description="Lorem ipsum" />
    <Company ID="28" Name="Company name 3" Description="Lorem ipsum" />
    <Company ID="31" Name="Company name 4" Description="Lorem ipsum" />
</Companies>

模运算符非常适合这样的情况。基本上,它将一个数除以另一个数,然后返回余数。所以
1%4=1
4%4=0
8%4=0

success: function(xml){
    var trow = $("<tr>"), table = $("#tbl");  
    $(xml).find("Company").each(function(index){  
        var cellData =  "<td width=\"33%\" valign=\"top\" ><div class=\"container\">"+
                        "<div class=\"item\"><a href=\"#\" title=\"\" target=\"\">"+ 
                        $(this).attr("Name")+ "</a></div>" +  
                        "<div class=\"description\">" + $(this).attr("Description") + 
                        "</div></div></div></td>";
        $(cellData).appendTo(trow);   
        if( (index + 1) % 4 == 0) {
            trow.appendTo(table);
            trow = $("<tr>");
        }

      });  
      if(trow.is(':not(:empty)')) trow.appendTo(table);  
    }  
    });
});
success:函数(xml){
var trow=$(“”),table=$(“#tbl”);
$(xml).find(“公司”).each(函数(索引){
var cellData=“”+
"" +  
“+$(this.attr(“Description”)+
"";
$(cellData).appendTo(trow);
如果((索引+1)%4==0){
附录(表);
trow=$(“”);
}
});  
如果(trow.is(':not(:empty)'))trow.appendTo(表);
}  
});
});

我还将
$(“#tbl”)
存储在一个变量中,以减少查找次数。

非常感谢您的快速响应!啊,模算子的巧妙运用。我已经完成这个解决方案好几个小时了。我唯一调整的是“4==0”到“3==0”,以强制第四个结果开始一个新的表行。再次感谢你的帮助!很乐意帮忙!很高兴你发现
4==0
应该是3。