我正在尝试存储一个jquery对象,以便将来可以操作它。然而,我却没有完成这项任务,如果有人能指出我正确的方向,我会很高兴。
我要做的是首先存储资源列表:
var allresources = $('.resource-list');
之后,我做了一些在服务器上花了很长时间的ajax操作,这就是我想将所有数据存储在内存中的原因。 AJAX返回一组id:[1,2,3]。我想清除初始div .resource-list的内容,并仅使用与我的id匹配的内容填充它。我正在尝试这些方面,但实际上并没有得到任何结论:
var sortResources = function(data){
$('.resource-list').html('');
$.each(data, function(index, value){
$(allresources.children('.filter-resource[data-id="'+value+'"]')[0]).appendTo($('.resource-list'));
});
}
由于
答案 0 :(得分:2)
allreasource变量只是对dom元素的引用。
您在过滤之前删除这些元素(使用$(' .resource-list')。html('');)。
我建议你追加"有效"内容到临时div,而不是替换.resource-list
的内容答案 1 :(得分:0)
我猜问题就在于这些片段。
$('.resource-list').html('');
将从DOM中清空.resource-list
。
现在children方法允许我们在DOM树中搜索这些元素的子元素,但是在同一时间.html('')
已经清空了相关的DOM
你可以做什么
var allresources = $('.resource-list');
var sortResources = function(data){
var _virDom = ""
$.each(data, function(index, value){
// Not sure what exactly is the DOM, so using span for demo
_virDom = '<span class = "filter-resource" data-id="'+value+'"></span>'
})
$('.resource-list').html("").append(_virDom)
});
}