不完全确定如何标题,但这就是我要做的事情:
var items = editArea.children();
var previewedItems = previewArea.children();
var unPreviewedItems = items.filter(function () {
// ??
});
我有一个editArea
和一个preview
区域。用户将div添加到editArea,每个div都具有不断增加的ID和data-scid
item1
,item2
等等。当单击按钮时,这些div将被克隆到预览区域中。每个克隆的ID都以preview_
为前缀,data-scid
s保持不变。我想获得一些我尚未克隆的元素列表,基本上类似于unPreviewedItems = items.not(previewedItems)
。我该怎么做?
答案 0 :(得分:0)
使用从名称中删除preview_
的密钥创建所有预览项目的地图(例如,名称为关键字的对象)。
然后,遍历所有未预览的项目,并创建一个在上一个地图中找不到的新列表。
// 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);
}
});