我将数据输出附加到此div部分。
在此<div>
部分中,有<div>
个部分是重复的。如何删除后面的副本?
要移除的示例编码:
<div id=EXTRACTION_a>something ...</div>
<div id=EXTRACTION_b>something ...</div>
<div id=EXTRACTION_c>something ...</div>
<div id=EXTRACTION_a>something ...</div>
<div id=EXTRACTION_b>something ...</div>
<div id=EXTRACTION_a>something ...</div>
<div id=EXTRACTION_c>something ...</div>
<div id=EXTRACTION_d>something ...</div>
<div id=EXTRACTION_a>something ...</div>
我想保留a,b,c,d的第一次出现并删除其余部分。
我尝试了这种编码但没有工作:
var count = -1;
\$("div[id^='EXTRACTION_']").each(function(){
count ++;
var ids = \$('[id='+this.id+']');
var originaldivsectin = \$(this);
var count2 = 0;
\$("div[id^='EXTRACTION_']").each(function(){
count2 ++;
var copyids = \$('[id='+this.id+']');
var dupdivsection = \$(this);
if (count != count2 && copyids.length>1 && ids[count]==copyids[count2])
{
dupdivsection.remove();
}
});
// if(ids.length>1 && ids[0]==this)
// {
// \$(this).remove();
// alert('Multiple IDs #'+this.id);
// }
});
注意:jquery对我来说仍然是一种新语言
答案 0 :(得分:7)
编辑:根据您的更新,我发现您只想根据可能匹配的ID删除某些元素,并且每种类型可能有多个匹配。
您可以这样做:
Click here to test a working example. (jsFiddle)
var found = {}; // Container to hold each unique ID that we find.
$('div[id^=EXTRACTION_]').filter(function() {
var ending = this.id.replace("EXTRACTION_","");
if( found.hasOwnProperty( ending ) ) {
return this;
} else {
found[ ending ] = ending;
}
}).remove();
我们基本上使用attribute-starts-with-selector
(docs)选择所有以EXTRACTION_
开头的元素。 (我还将div
添加到选择器中。如果它们不是全部divs
,请删除它。)
然后我们filter()
(docs)他们。在过滤器中,首先我们提取ID的唯一部分。然后我们检查该ID是否是我们创建的名为found
的对象的属性。如果不是,请将其添加为属性。如果它已经是属性,那意味着我们已经遇到过它,因此我们执行了return this
,这将导致.filter()
将该元素保留在集合中。
所以最后,我们只留下那些重复的元素,然后我们可以做remove()
(docs)。
<强>原始强>
这会照顾你的副本。
答案 1 :(得分:3)
在我正在研究“看到的”jQuery解决方案的网站上没有用。我用的是这个:
<div id="t" class="resevt">2</div>
<div id="t" class="resevt">tues</div>
<div id="w" class="resevt">wed</div>
<div id="th" class="resevt">4</div>
<div id="th" class="resevt">thurs</div>
<div id="f" class="resevt">fri</div>
<div id="count"></div>
var ids = [];
$('*').each(function() {
if (this.id && this.id !== '') {
if (ids[this.id]) {
$(this).remove();
} else {
ids[this.id] = this
}
}
});
答案 2 :(得分:0)
我用过这个:
// REMOVING SECOND DUPLICATE SECTIONS OF DIVS HERE
\$("div[id^='EXTRACTION_']").each(function(){
var ids = \$('[id='+this.id+']');
if(ids.length>1 && ids[0]==this)
{
\$(ids[1]).remove();
}
});