在jquery中隐藏重复的div

时间:2010-09-07 14:31:19

标签: javascript jquery duplicates hide

我有一些动态放入的图层如下

<div><p class="locid">2<p></div>
<div><p class="locid">1<p></div>
<div><p class="locid">2<p></div>
<div><p class="locid">3<p></div>
<div><p class="locid">4<p></div>

我需要做的是隐藏此图层的第二次出现,使其显示如下

<div><p class="locid">2<p></div>
<div><p class="locid">1<p></div>
<div><p class="locid">3<p></div>
<div><p class="locid">4<p></div>

有什么想法吗?

由于

杰米

5 个答案:

答案 0 :(得分:1)

// get a collection of p's matching some value
$("p.locid").filter(function() {
    return $(this).text() == '2';

// hide the (div) parent of the second match
}).eq(1).parent().hide();

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

答案 1 :(得分:1)

看看:

http://api.jquery.com/jQuery.unique/

这正是您正在寻找的;)

答案 2 :(得分:1)

有趣。试试这个。

var a = new Array();
$('p.locid').each(function(){
    text = $(this).text();
    if($.inArray(text, a)){
        $(this).closest('div').hide();
    }else{
        a.push(text);
    }
});

答案 3 :(得分:0)

试试这个:

var arr = new array();

$('.locid').each(function(){
  if ($.inArray($(this).text(), arr) !== -1){
     $(this).closest('div').remove();
  }
  else{
    arr[] = $(this).text();
  }
});

答案 4 :(得分:0)

这有效:

var a = new Array();

$('p').each(function(index) {
    text = $(this).text();
    if($.inArray(text, a)!=-1){
        $(this).closest('p').hide();
    }else{
        a.push(text);
    }
});

http://jsfiddle.net/WjgxQ/59/