我有一個對象,其中有一些地址信息,我想append()
到一個HTML表格。使網格佈局的標籤與jQuery的附加()
表開始是這樣的:
<table class="shipping_information" border="1">
</table>
然後我把我的地址信息到另一個表(這裏5號線),並把該表爲<td>
。我試圖讓最大數量爲<td>
(這裏是2)。如果超過2,將追加新的<tr>
。
function add_shipping_address_to_shipping_container(address_obj, shipping_container) {
var append_to_table = "";
var table = shipping_container.find('table.shipping_information');
var max_td = 2;
var formatted_address = format_address(address_obj); //returns a table with the address
//are there any rows in the table
var is_tr = table.find('tr.shipping_address_container_table').length;
if (!is_tr) {
//no tr so append tr and td
//colspan should be max_td
append_to_table = "<tr class='add_container'><td class='add_container'>" + formatted_address +"</td></tr>"
} else {
//there is a tr
var last_tr = table.find('tr.add_container:last');
//number of tds in the last row
var num_td = last_tr.find('td.add_container').length;
if (num_td >= max_td) {
append_to_table = "<tr class='add_container'><td class='add_container'>" + formatted_address + "</td></tr>";
} else {
append_to_table = "<td class='add_container'>" + formatted_address + "</td>";
}
}
table.append(append_to_table);
}
但是,<td>
不是我想象的那樣追加。它每次都會產生一個新的<tr>
。當我打印變量append_to_table to the console
時,它看起來是正確的。 <tr><td></td></tr>
什麼時候應該有,而只有<td></td>
的時候應該是這樣。是jQuery或鉻自動添加一個新的<tbody>
每次或什麼?
是,瀏覽器會在您嘗試添加無效創造必要的元素HTML。它不應該只是* td,一個表必須至少有一個'tbody',而一個表格單元'td/th'只能放在表格行'tr'內。 – Shmiddty
@Shmiddty但這個稍微簡化的版本似乎工作http://jsbin.com/ujetuz/6/edit有什麼區別? – 1252748
你的例子似乎沒有對我做任何事情。 – Shmiddty