Feedburner を使用してフィードを表示しています。フィードのタイトルが同じ場合もあります。このような状況では、最初のタイトルのみを表示し、同じテキストを持つ他のすべてのタイトルを非表示にしたいと考えています。私はこれを試しました:JsFiddle
運がない。それらを「a」と呼ぶことはできますが、それらを互いに区別する方法がわかりません。
Feedburner を使用してフィードを表示しています。フィードのタイトルが同じ場合もあります。このような状況では、最初のタイトルのみを表示し、同じテキストを持つ他のすべてのタイトルを非表示にしたいと考えています。私はこれを試しました:JsFiddle
運がない。それらを「a」と呼ぶことはできますが、それらを互いに区別する方法がわかりません。
表示されているすべてのリンクとこのJavaScriptから始めてみてください。
$(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();
}
});
});
});
関数を使用する代わりにfilter
、オブジェクトを使用して、jQuery要素を含むすべてのフィードタイトルを収集できます。HashMap
オブジェクトには重複するキーを含めることができないため、オブジェクトはJavaの場合と同じように動作します。したがって、重複するフィードタイトルは自動的に削除されます。
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文字列のみを返します(ドキュメントを参照)。