我有一个无序列表(每个列表元素都包含一些进一步的标记,但这不重要),它是从对数据库的 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>
如果这有帮助的话。