/ / jQuery属性に基づくネストされたテーブルの作成 - jquery、html-table、ネストされた

jQueryは、属性jquery、html-table、ネストされたネストされたテーブルを作成しました。

だから私は昨日非常に似た質問をしましたネストされたリストについては、ネストされたリストとネストしたテーブルを作成するための答えを両方使うことができると考えています。しかし、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

http://jsfiddle.net/ZDUQU/

基本的に、最初のテーブルにテーブルを追加する 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);
}
});