【问题标题】:jQuery append table in loop not working [duplicate]循环中的jQuery附加表不起作用[重复]
【发布时间】:2017-12-14 05:29:03
【问题描述】:

我在 jquery 中有一个 $.each ,并且在每个语句中我试图附加到一个表中:

$.each(result, function (y, z) {

                $table.append("<tr>");

                $table.append("<td>" + y + "</td>");

                $table.append("</tr>");

            });

但是我得到了这样奇怪的结果:

<tbody>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
</tbody>
<td>aaa</td>
<td>bbb</td>
<td>ccc</td>
<td>ddd</td>

我期待

<tr>
<td>aaa</td>
<td>bbb</td>
<td>ccc</td>
<td>ddd</td>
</tr>

【问题讨论】:

  • 您不能单独附加开始和结束标签。您不是在附加 HTML,而是在附加 DOM 元素。 $table.append("&lt;tr&gt;&lt;td&gt;" + y + "&lt;/td&gt;&lt;/tr&gt;")
  • jQuery 追加不像连接文本那样工作,您必须追加整个元素。将td 附加到tr,然后将tr 附加到table。或者像@JJJ 建议的那样一次性完成。

标签: javascript jquery


【解决方案1】:

请尝试以下代码,您尝试使用 append 添加 html 而没有 jQuery 对象,其次没有以正确的方式附加。

$.each(result, function (y, z) {

  $table.append($("<tr><td>" + y + "</td></tr>"));

});

或者,

$.each(result, function (y, z) {

 var row = "<tr>"
 row += "<td>" + y + "</td>";
 row += "</tr>";

 $table.append($(row));

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    相关资源
    最近更新 更多