如何存储和访问jquery元素列表?

时间:2016-06-22 15:15:02

标签: javascript jquery

我正在尝试存储一个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'));
  });
}

由于

2 个答案:

答案 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)

  });
}