Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从html元素中删除重复项_Javascript_Jquery - Fatal编程技术网

Javascript 从html元素中删除重复项

Javascript 从html元素中删除重复项,javascript,jquery,Javascript,Jquery,什么是最好的办法,以消除重复的葡萄从这个?有很多方法可以从简单数组中删除重复项,但这将是一个包含html元素的数组 <div class="fruit"> grapes </div> <div class="fruit"> bananas </div> <div class="fruit"> grapes </div> :has需要一个元素选择器,而:contains需要一

什么是最好的办法,以消除重复的葡萄从这个?有很多方法可以从简单数组中删除重复项,但这将是一个包含html元素的数组

 <div class="fruit">
      grapes
 </div>
 <div class="fruit">
      bananas
 </div>
 <div class="fruit">
      grapes
  </div>
:has需要一个元素选择器,而:contains需要一个字符串

因此,这应该可以做到:

 $('.fruit').each(function () {
      $('.fruit:contains("' + $(this).text() + '"):gt(0)').remove();  
 });
fiddle:

:has需要一个元素选择器,而:contains需要一个字符串

因此,这应该可以做到:

 $('.fruit').each(function () {
      $('.fruit:contains("' + $(this).text() + '"):gt(0)').remove();  
 });
小提琴:试试看

var obj = {};
$('.fruit').each(function(){
    var text = $.trim($(this).text());
    if(obj[text]){
        $(this).remove();
    } else {
        obj[text] = true;
    }
})
演示:

试试看

var obj = {};
$('.fruit').each(function(){
    var text = $.trim($(this).text());
    if(obj[text]){
        $(this).remove();
    } else {
        obj[text] = true;
    }
})

演示:

这是这把小提琴的工作原理:-


下面是这把小提琴的工作原理:-

假设您只希望删除其中一个副本

使用,与上面的答案类似,但实现略有不同

$($("div:contains('grapes')")[0]).remove();
-这也可能对您有用

var uniqueFruits = [];
$(".fruit").each(function(i,e){
    var thisFruit = $.trim($(e).text());
    if(uniqueFruits.indexOf(thisFruit) == -1)
        uniqueFruits.push(thisFruit);
    else
        $(e).remove();
});
假设您只希望删除其中一个副本

使用,与上面的答案类似,但实现略有不同

$($("div:contains('grapes')")[0]).remove();
-这也可能对您有用

var uniqueFruits = [];
$(".fruit").each(function(i,e){
    var thisFruit = $.trim($(e).text());
    if(uniqueFruits.indexOf(thisFruit) == -1)
        uniqueFruits.push(thisFruit);
    else
        $(e).remove();
});
请点击此处:

请点击此处:


没错,我也想知道。我觉得小提琴很好,不知道为什么这么做。是的,我也想知道。我认为小提琴很好,不知道为什么这么做。