登録済みと完了の 2 つのリンクがあるページがあります。いずれかをクリックすると、関連するデータを含むテーブルが作成されます。ボタンをクリックすると、現在のテーブルをページから削除し、(Javascript を使用して) 新しいテーブルを作成して追加する必要があります。何らかの理由で.remove()
、.empty()
動的に作成されたテーブルで動作していません。[登録済み] および [完了済み] リンクは常にページに存在します。
HTML:
<body>
<a id="completed" class="btn" title="Completed">Completed</a>
<a id="enrolled" class="btn" title="Enrolled">Enrolled</a>
<div id="table_container">
<table id="courses_table"></table>
</div>
</body>
Javascript:
$(document).ready(function() {
$("a[class*=btn]").click(function(e) {
display_type = this.id;
getTags(display_type);
e.preventDefault();
});
});
function getTags(type) {
$('#courses_table').remove();
//ajax call to get data, create string of new table html, append it to the container div
var table_data = '<table id="courses_table">...</table>';
$('#table_container').append(table_data);
}
.remove()
をクリックイベントまたは成功関数に移動し、含まれているdiv全体を削除しようとしましたが、喜びはありません. 追加に問題はありません。私が見逃しているのは単純なものだと確信しています。
編集: console.log の#table_container.children()
is [img images/calendars.png, div.width-100, table#courses_table]
.
のconsole.log#courses_table
が私を取得します[table#courses_table]
。これらの結果を正しく解釈していれば、テーブルは存在するので、削除されない理由に戻ります。
2 番目の編集: 削除しようとしているテーブルに複数の tbody タグがあることを忘れていました。おそらくそれが問題を引き起こしていますか?テーブルを削除する前にテーブルを空にしようとしましたが、うまくいきませんでした。
ここに私が見ているものを示すフィドルがあります: http://jsfiddle.net/c4Y3U/13/