Javascript 使用jqueryxml响应构建html表
我试图遍历来自jQueryAjax请求(以XML形式返回)的响应 有了这个响应,我正在构建一个包含3列的HTML表(能够无限多行)。找到第四个XML节点/“company”后,它应该在表中开始一个新行。 非常感谢JS帮助您确定何时应该添加新行。谢谢 JS示例: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
/* 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。