Jquery 选择一个集合中不包含另一个集合属性的元素

Jquery 选择一个集合中不包含另一个集合属性的元素,jquery,Jquery,不完全确定如何表达标题,但我想做的是: var items = editArea.children(); var previewedItems = previewArea.children(); var unPreviewedItems = items.filter(function () { // ?? }); 我有一个编辑区和一个预览区。用户将div附加到编辑区,每个div都具有递增的ID和item1、item2等的data scid。单击按钮时,这些div被克隆到预览区。每个克

不完全确定如何表达标题,但我想做的是:

var items = editArea.children();
var previewedItems = previewArea.children();

var unPreviewedItems = items.filter(function () {
    // ??
});
我有一个
编辑区和一个
预览区。用户将div附加到编辑区,每个div都具有递增的ID和
item1
item2
等的
data scid
。单击按钮时,这些div被克隆到预览区。每个克隆的ID前缀为
预览
,数据scid保持不变。我想得到一个尚未克隆的元素列表,本质上类似于
unPreviewedItems=items.not(previewedItems)
。如何执行此操作?

使用从名称中删除了“代码>预览”的键,为所有预览项目创建一个映射(例如,一个以键为名称的对象)

然后,遍历所有未查看的项目,并创建在上一个映射中未找到的项目的新列表

// create the already previewed map
var map = {};
previewArea.children().each(function() {
    var id = this.id.replace(/^preview_/, "");
    map[id] = true;
});

var unpreviewed = [];
// iterate through the whole list of items
editArea.children().each(function() {
    if (!map.hasOwnProperty(this.id)) {
        unpreviewed.push(this);
    }
});