だから私は昨日非常に似た質問をしましたネストされたリストについては、ネストされたリストとネストしたテーブルを作成するための答えを両方使うことができると考えています。しかし、jQueryを変更してネストしたテーブルを作成しようとすると、ちょっとしたことが起こります。それは、子どもとテーブル全体を入れ子にしたり入れ子にしたりしない <tr>
"親の下に <tr>
子供の代わりに <tr>
"s。サンプルテーブル:
<table>
<tbody>
<tr id="10"><td>Parent 1</td></tr>
<tr id="14"><td>Parent 2</td></tr>
</tbody>
</table>
<table>
<tbody>
<tr class="10"><td>Child A</td></tr>
<tr class="10"><td>Child B</td></tr>
<tr Class="14"><td>Child X</td></tr>
</tbody>
</table>
(このjQueryはvzwickが非常に優しく私を助けたコードに基づいています)jQueryは次のようになります:
$("tbody.csTR_children tr").each(function() {
probable_parent = $("tbody.csTR_parent tr#" + $(this).attr("class"));
if (probable_parent.length) {
if (!probable_parent.find("tbody").length) probable_parent.append("<tbody/>");
$(this).detach().appendTo(probable_parent.find("tbody"));
}
});
これは私が得た最も近いもので、各親行の下にテーブル全体を入れ子にしています(IEでは最初の親と子を適切に入れ子にしますが、それ以外の部分は入れません)。
回答:
回答№1は1追加しようとしている tbody
〜に tr
それはまったく間違っています。 A tbody
直接内になければなりません table
あなたはそのテーブルを直接 tr
、それは td
基本的に、最初のテーブルにテーブルを追加する td
行の中で:
probable_parent.children(":first").append("<table><tbody></tbody></table>");
回答№2の場合は0
これをみて。私はそれがあなたが望むことをすると思う:
$("table#child tr").each(function() {
var parentId = $(this).data("parentId");
var parent = $("#" + parentId);
if (parent) {
var tbody = $("tbody", parent);
if (tbody.length == 0) {
// need to add the table wrapper
tbody = $("<tbody>");
var table = $("<table>").append(tbody);
parent.append(table);
}
$(this).detach().appendTo(tbody);
}
});
あなたと遊ぶためのjsFiddleがあります: http://jsfiddle.net/78aXx/2/
ボブ
回答№3の場合は0
$("tbody.csTR_children tr").each(function() {
probable_parent = $("#" + $(this).data("parentID"));
if (probable_parent.length) {
if (!probable_parent.find("tbody").length)
$(this).detach().insertAfter(probable_parent);
}
});