我已经使用类名“combo”克隆了div中的div重复元素。我需要删除除原始div元素
之外的所有重复项答案 0 :(得分:4)
问题是克隆的对象将具有与原始对象相同的属性,因此很难区分它们,但是,您可以尝试这样做:
(function()
{
//or indeed: querySelector('.combo') which returns a single DOM ref
var original = document.querySelectorAll('.combo')[0];//reference to the original
//clone and add
function removeClones()
{
var i,all = document.querySelectorAll('.combo');
for(i=0;i<all.length;i++)
{
if (all[i] !== original)
{//this is a clone
all[i].parentNode.removeChild(all[i]);
}
}
}
}());
应该这样做。另一种方法是在将类附加到DOM之前向克隆添加一个类:
var clone = original.cloneNode(true);
clone.className += ' combo-clone';
//then, to remove:
var clones = document.querySelectorAll('combo-clone');//selects all clones
答案 1 :(得分:1)
在某处保留对克隆元素的引用(例如数组)。遍历该数组并在每个值上调用foo.parentNode.removeChild(foo)
。
答案 2 :(得分:1)
var fn = function(originalEl){
var els = document.querySelectorAll('.combo');
for(var i=0; i<els.length; i++){
if( els[i] !== originalEl ){
els[i].parentNode.removeChild(els[i]);
}
}
}