2012-08-16 3 views
0

Feedburner를 사용하여 피드를 표시하고 있습니다. 때로는 피드의 제목이 같은 경우도 있습니다. 이 경우에는 첫 번째 제목 만 표시하고 다른 모든 제목은 같은 텍스트로 숨기고 싶습니다. 나는 이것을 시도했다 : JsFiddlehtml이 동일한 경우 숨기기

운 없음. 나는 그들을 'a'라고 부를 수는 있지만, 서로 구별하는 방법을 이해하지 못합니다.

+0

내가 디스플레이를 가지고 있기 때문에 출력 – 2619

+0

That't에서 아무것도 보여 나던 : 없음 ..... – Youss

+3

http://stackoverflow.com/questions/5381621/jquery-function-to-get-all-unique- 배열에서 요소 결과 배열에서 고유 요소를 필터링하는 방법을 이해하는 데 도움이됩니다. – Prasanth

답변

0

가 보여주는 모든 링크이 자바 스크립트로 시작하십시오 :

$(function() { 
    var $feeds = $(".feedburnerFeedBlock li a"); 
    $feeds.each(function(i) { 
     var $that = $(this); 
     $feeds.each(function(j) { 
      var $this = $(this); 
      if (j <= i) { 
       return true;//continue 
      }; 
      if ($this.text() == $that.text()) { 
       $this.hide(); 
      } 
     }); 
    }); 
}); 

DEMO

0

대신 filter 기능을 사용하는 당신은 자신의 jQuery 요소와 모든 피드 타이틀을 수집하는 객체를 사용할 수 있습니다. 객체는 중복 키를 포함 할 수 없기 때문에 객체는 Java에서 HashMap처럼 작동합니다. 따라서 중복 된 피드 제목은 자동으로 제거됩니다.

var unique = { }; 
// Reverse elements to keep first occurence of feed title (and not the last one) 
$($(".feedburnerFeedBlock li").get().reverse()).each(function(){ 
    // Use feed title as key and jQuery element as value 
    unique[$(this).find("a").text()] = $(this); 
}).hide(); 
// Show all unique elements 
for (title in unique) { 
    unique[title].show(); 
} 

JSFiddle는 : http://jsfiddle.net/Aletheios/9GKBH/1/

게다가, 코드 때문에 여러 가지 이유로 작동하지 않습니다. 그 중에서도 jQuery의 .html() 함수는 집합의 첫 번째 요소 인 HTML 문자열 만 반환합니다 (see documentation).

관련 문제