DBへのAJAX呼び出しから構築(インスタンス化および追加)された順序付けされていないリスト(各リスト要素にはさらにマークアップが含まれていますが、これは重要ではありません)があります。次のAJAX呼び出しの結果が出る前に、リストをクリアしたいと思います。
$('#list').empty()
何らかの理由で機能しません(.remove()と.not()を使用して多くの代替スキーマを試しましたが、成功しませんでした)。私はcssなどを変更できるので、アイテムを正しくターゲットにしていることを知っています。私ができる最善のことは、各li内からクラスごとに要素を削除することです。
$('list li .class').remove()
私はここで根本的に間違ったことをしていますか?
ところで、リスト要素はMustacheを使用してレンダリングされていますが、一度レンダリングされると、それは単なるHTMLマークアップであるため、問題にはなりません。それとも、ここでも間違っていますか?
助けてくれてありがとう。
[編集]さて、jsfiddleでまともなAJAX応答を得ることができなかったので、ここに本質的なAJAX関数呼び出しがあります。
function loadResults() {
$.ajax({
'type' : 'POST',
'url' : '/lib/ajax.php',
'data' : {
'data1' : $('#data1').text(),
'data2' : $('#data2').text(),
'data3' : $('#data3').text()
},
'success' : function(data) {
data = JSON.parse(data);
// remove old results and add new results iteratively
$('#results ul').empty();
$.each(data, function(i, elem) {
// Load the template
$.get('/views/default/templates/elem_tpl.html', function(t) {
tmpl = t;
});
$(document).ajaxStop(function() {
var template = Mustache.render(tmpl, elem);
$('#results ul').append(template);
});
});
}
});
}
HTMLは、文字通り、テスト目的の基本的なリストです。
<div id="results">
<ul>
</ul>
</div>
それが助けになるなら。