javascript - 使用 jqueryeach(),确保这个 html 表中的列数不超过 5 的最佳方法是什么?

标签 javascript jquery html html-table each

在 ajax 调用的回调中,我得到了一组人物对象及其图片的 URL。我有以下代码:

 html.push("<table class='tooltipProject'>");
 html.push("<tr><td>");

      $.each(data.People, function (index, person) {
         html.push("<img width='44' src='" + person.PicLink + "' />");
      });

 html.push("</td></tr>");
 html.push("</table>");
 return html.join("");

我正在获取此 html 并将其显示在弹出窗口中。这非常有效,因为每个数组 (data.People) 都很小。我现在遇到的情况是它们很大,因此用户界面看起来太宽。我可以将 UI 弹出窗口限制为固定宽度(假设为 500px),但我现在需要生成一个表格,在该表格中我不想连续显示超过 5 个图像,之后它应该只到下一行

所以我在 data.People 中有 3 个项目,然后它将显示一行。

如果我在 data.People 中有 10 个项目,那么我想在第一行显示 5 个项目,在第 2 行显示 5 个项目。

我可以为每张图片创建一个 TD,但我不确定这会产生什么影响,因为我仍然需要正确的逻辑来知道何时需要新行。

最佳答案

只需将 $.each 循环的索引模 5 即可确定何时开始一行:

 html.push("<table class='tooltipProject'><tr>");

 $.each(data.People, function (index, person) {
     html.push("<td><img width='44' src='" + person.PicLink + "'></td>");
     if (index % 5 == 4 && index < data.People.length - 1) {
         html.push("</tr><tr>");
     }
 });

 html.push("</tr></table>");
 return html.join("");

关于javascript - 使用 jqueryeach(),确保这个 html 表中的列数不超过 5 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20129812/

相关文章:

javascript - 为什么 'this' 的值从文档到窗口变化

以字符串作为输入的 jquery spinner

javascript - Firefox 不支持 W3Schools slidehorizo​​ntal javascript

javascript - appendchild 中的上标 html 标签

javascript - ng-repeat 中的函数调用了 4 次(AngularJs)

javascript - 为什么 jQuery .html(string) 将 type 属性移到输入的末尾?

javascript - tinymce,自动给内容添加style属性

jquery - 尝试将类切换为可见/隐藏,但文本重新出现,没有看到任何控制台错误

html - 与矢量效果 : non-scaling-stroke 结合使用时,内联 SVG <circle> 在 Firefox 中中断

html - 如果我将类添加到 span 标签而不是 div 标签,为什么会有所不同?