jQuery.append html代码 到 table

本文介绍如何使用jQuery在表格中动态添加新行,并确保DOM结构正确。通过具体示例展示了正确的做法与常见错误,帮助读者理解如何避免DOM结构错误。
<table id="tab">
  <tr><td>第一行文字</td></tr>
</table>
<buttononclick="insertHtml();">插入</button>
<script type="text/javascript">
    functioninsertHtml() {
       $("#tab     tbody").append("<tr><td>第二行文字</td></tr>");
       alert($("#tab").html());
    }
</script>

操作完成后的代码为
<table id="tab">
  <tbody>
       <tr><td>第一行文字</td></tr>      
      <tr><td>第二行文字</td></tr>
  </tbody>
</table>

浏览器会在table中加tbody标签, 如用$("#tab").append("<tr><td>第二行文字</td></tr>"),则会生成以下错误代码
<table id="tab">
  <tbody>
       <tr><td>第一行文字</td></tr>      
  </tbody>
 <tr><td>第二行文字</td></tr>
</table>
我想问下以下代码是如何创建表格的,解释一下, private void setSceneResultDetail(final StringBuilder content, final ChaosAnalyzeResultVO sceneResultVO) { content.append(HtmlTagConstant.H_FIVE) .append("(1)各阶段性能表现").append(HtmlTagConstant.BR) .append(WordConstant.BLANK_INDENT).append("故障注入前:") .append(String.join("-", sceneResultVO.getChaosTime().subList(0, 2))).append(HtmlTagConstant.BR) .append(WordConstant.BLANK_INDENT).append("故障注入期间:") .append(String.join("-", sceneResultVO.getChaosTime().subList(1, 3))).append(HtmlTagConstant.BR) .append(WordConstant.BLANK_INDENT).append("故障注入后:") .append(String.join("-", sceneResultVO.getChaosTime().subList(2, 4))).append(HtmlTagConstant.BR) .append(HtmlTagConstant.SLASH_H_FIVE); // 指标表格 StringBuilder body = new StringBuilder(); for (final Map.Entry<String, Map<String, Map<String, String[][]>>> quotaData : sceneResultVO.getInstanceData().entrySet()) { int podNum = quotaData.getValue().values().stream().mapToInt(Map::size).sum(); body.append(HtmlTagConstant.TR); body.append(String.format(HtmlTagConstant.TD_WITH_ROWSPAN, podNum)).append(quotaData.getKey()).append(HtmlTagConstant.SLASH_TD); for (final Map.Entry<String, Map<String, String[][]>> clusterData : quotaData.getValue().entrySet()) { if (body.toString().endsWith(HtmlTagConstant.SLASH_TR)) { body.append(HtmlTagConstant.TR); } body.append(String.format(HtmlTagConstant.TD_WITH_ROWSPAN, clusterData.getValue().size())) .append(clusterData.getKey()).append(HtmlTagConstant.SLASH_TD); for (final Map.Entry<String, String[][]> podData : clusterData.getValue().entrySet()) { if (body.toString().endsWith(HtmlTagConstant.SLASH_TR)) { body.append(HtmlTagConstant.TR); } body.append(HtmlTagConstant.TD).append(podData.getKey()).append(HtmlTagConstant.SLASH_TD); for (final String[] data : podData.getValue()) { body.append(HtmlTagConstant.TD).append( StringUtils.hasLength(data[1]) ? String.format("%s(%s-%s)", data[1], data[0], data[2]) : "-") .append(HtmlTagConstant.SLASH_TD); } body.append(HtmlTagConstant.SLASH_TR); } } body.append(HtmlTagConstant.SLASH_TR); } content.append(buildTable(List.of("指标", "集群", "实例", "注入前", "注入期间", "销毁后"), body.toString(), true, List.of("15%", "20%", "20%", "15%", "15%", "15%"))); }
最新发布
08-09
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值