我有服务器生成的html:
<div id="invContent">
<tbody>
<tr>
<td>A</td>
<td>B</td>
<td>C</td>
</tr>
<tr>
<td>D</td>
<td>E</td>
<td>F</td>
</tr>
<tr>
<td>G</td>
<td>H</td>
<td>X</td>
</tr>
</tbody>
</div>
和这个ajax电话:
& .ajax({
url: path,
datatype: "html",
success: function (result) {
$("#tableID>tbody").append($(result).find("#invContent").html());
}
});
问题是tr和td标签没有被追加,只有td的内容。
如何附加这些多个tr?
答案 0 :(得分:1)
您的选择器正在选择然后附加tbody
元素,这可能会生成令浏览器混淆的内容(一个tbody
内的多个table
元素)。
尝试将success
回调更改为:
$("#tableID>tbody").append($(result).find("#invContent>tbody").html());
更好的解决方案是更新服务器端代码,只返回tr
元素,这样就不必在响应中进行任何选择/导航。
答案 1 :(得分:0)
我终于解决了这个问题!
我只是将tr包裹在表格标签中:
<div id="invContent">
<table>
<tbody>
<tr>
<td>A</td>
<td>B</td>
<td>C</td>
</tr>
<tr>
<td>D</td>
<td>E</td>
<td>F</td>
</tr>
<tr>
<td>G</td>
<td>H</td>
<td>X</td>
</tr>
</tbody>
<table
</div>
和success
回调是:
$("#tableID>tbody").append($(result).find("#invContent>table>tbody").html());