我已经用类名“combo”克隆了 body 中的 div 重复元素。我需要删除除原始 div 元素之外的所有重复项
问问题
3033 次
3 回答
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
于 2013-09-02T07:05:25.617 回答
1
在某处(例如数组)保留对克隆元素的引用。循环遍历该数组并调用foo.parentNode.removeChild(foo)
每个值。
于 2013-09-02T06:58:22.943 回答
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]);
}
}
}
于 2013-09-02T06:58:40.493 回答