如何删除除一个之外的所有元素?

axe*_*584 5 javascript raphael

除了我点击的那个之外,我想从我的canva中删除所有元素.我创建一个集合,将所有元素放入其中并删除集合:

button.click(function () {
    var to_remove = paper.set();    
    paper.forEach(function (el) {
        to_remove.push(el);
    });         
    to_remove.remove();
});
Run Code Online (Sandbox Code Playgroud)

但我没有成功测试我的元素是否是我的按钮.

阿克塞尔

amu*_*ill 1

您可以简单地缓存单击的元素并在循环期间进行比较。

\n\n
button.click(function() {\n    var clickedEl = this,\n        toRemove = paper.set();\n\n    paper.forEach(function(el) {\n        if (el !== clickedEl) {\n            toRemove.push(el);\n        }\n    });\n\n    toRemove.remove();\n});\xe2\x80\x8b\n
Run Code Online (Sandbox Code Playgroud)\n\n

演示: http: //jsfiddle.net/yRNNe/

\n