0

Feedburner を使用してフィードを表示しています。フィードのタイトルが同じ場合もあります。このような状況では、最初のタイトルのみを表示し、同じテキストを持つ他のすべてのタイトルを非表示にしたいと考えています。私はこれを試しました:JsFiddle

運がない。それらを「a」と呼ぶことはできますが、それらを互いに区別する方法がわかりません。

4

2 に答える 2

0

表示されているすべてのリンクとこの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();
            }
        });
    });
});

デモ

于 2012-08-16T17:32:13.907 に答える
0

関数を使用する代わりに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文字列のみを返します(ドキュメントを参照)。

于 2012-08-16T17:33:07.023 に答える