jquery - 如何根据给定的结构构建 HTML

标签 jquery

我需要动态构造以下 HTML

<tr>
     <td><label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">A<span></span></label></td>
     <td><label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">B<span></span></label></td>
     <td><label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">C<span></span></label></td>
     <td><label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">D<span></span></label></td>
  </tr>
  <tr>
     <td><label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass" >E<span></span></label></td>
     <td><label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">F<span></span></label></td>
     <td><label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass" >G<span></span></label></td>
     <td><label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">H<span></span></label></td>
  </tr>

如您所见,每个 tr 应仅包含 4 列

这是我的代码

var myarray = ["A", "B","C","D","E","F","G","H"]
$(document).ready(function()
{
        var html = ''
        for (var i = 0; i < myarray.length; i++)
        {
                html += '<td><label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">' + myarray[i] + '<span></span></label></td>'
        }
        $("#mytable tbody").append(html);
});

正如您从代码中看到的,我只是将 td 添加到表中,但无法按照上述结构进行添加,并且数组大小也不固定(可以是任意数量的元素)

这是我的 fiddle

能否请您告诉我如何添加,因为每个 tr 只能包含 4 个元素

https://jsfiddle.net/dHZS9/701/

最佳答案

您只需检查索引,确保4的余数为0(其中4是由i + 1获得的自然索引):

var myarray = ["A", "B", "C", "D", "E", "F", "G", "H"]
$(document).ready(function() {
  var html = ''
  for (var i = 0; i < myarray.length; i++) {
    html += '<td><label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">' + myarray[i] + '<span></span></label></td>';
    if ((i + 1) % 4 == 0)
      html += '</tr><tr>';
  }
  $("#mytable tbody").append('<tr>' + html + '</tr>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="table" id="mytable">
  <tbody>

  </tbody>
</table>

预览

preview

关于jquery - 如何根据给定的结构构建 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39855782/

相关文章:

javascript - ("id").val() 不适用于 tr :subform tag

javascript - 如何搜索 li 包含文本值?

c# - 如何使用 jQuery 遍历我的 Json 响应?

javascript - 通过 ajax : showing error message throws error 验证 Laravel 数组

javascript - 使用 jQuery 转换超链接标记时忽略图像标签

javascript - jQuery attr() 无法设置属性

javascript - 负边距上的 jQuery 动画 - 意想不到的结果

jquery - float 条形图 : configure extent of x-axis when there's only one entry?

javascript - Fullcalendar 显示下个月的事件,我该如何解决这个问题?

jquery - JS/溢出 :hidden performance issues in Safari on iPad/iOS