したがって、JSON データベースの複数のエントリに再利用しようとしているテーブルを含むこの div があります。
<div class="myButton">
<table>
<tr id="currentVersion">
<td class="subj">Current Version</td>
<td class="abt"></td>
</tr>
<tr id="baseReqs">
<td class="subj">Basic System Requirements</td>
<td class="abt"></td>
</tr>
<tr id="reasonsTo">
<td class="subj">Reasons to Update to This Version</td>
<td class="abt"></td>
</tr>
<tr id="reasonsNot">
<td class="subj">Note the Following Before Updating</td>
<td class="abt"></td>
</tr>
</table>
</div>
そして、私が使用している jQuery は div をデタッチし、データベース内の各エントリのクローンを作成します。
buttonCreator: function(data){
var buttonElement = $('.myButton').detach();
$.each(data, function(index, version){
var newButton = buttonElement.clone();
newButton.attr("id", version.id).addClass(version.status);
newButton.html(version.shortName);
/*the next line fails! because the correct element does not exist, evidently*/
$('.currentVersion .abt', newButton).html(version.currentVersion);
/*this just prepares the div to be seen correctly, and handle events*/
newButton.children().hide();
newButton.click(versionilizer.handleButtonClick);
$('#myVersionInfo').append(newButton);
});
},
しかし、テーブルを .clone() でコピーすることはできません。API を調べたところ、ネストされたデータと関連するイベント ハンドラー (存在する場合) をコピーする必要があるようですが、これまでの経験はありませんでした。(true) と (true, true) を引数として .clone() と .detach() の両方に渡そうとしましたが、これも成功しませんでした。divの内容をコピーするために何をする必要があるかわかりません。