1

Feedburner を使用してフィードを表示しています。フィードのテキストが同じ場合があります。特定のフィードの「重複」を「非表示」にしたいと思います。次のように、feedburner スクリプトを div 'unique' 内にラップしました: jsFiddle

「インデックス」に一致するフィードのみを表示したいので、フィードに display:none を設定しました。変数が「表示」されない理由がわかりません

4

1 に答える 1

1

.text()クエリが間違っていると思います。

var a = $('.unique a').text();

上記はテキストのみを返します。

男はBiddinghuizenMinder tienermoedersダンooit vliegtuigje Overdinkel'Broer vermoorde honkballer ontoerekeningsvatbaar'Boete VOOR RET OM studentenreisgegevensDode BIJクラッシュvoetenGroteブランドvrije liftschacht RotterdamBulgarije geeft写真vrijバンtweede verdachte bomaanslagStraat ontruimd BIJグロートブランドOverdinkelAsielアサンジverandert niets VOOR LondenMoordenaar honkballer Halman OPにVALナDOODネダーランドで

繰り返すことはできませんa

私はあなたがしたいと思うかもしれないと思います:

var a = $('.unique a');

これにより、今すぐ繰り返すことができるアイテムのリストが返されます。

私が見ることができる次の問題は、フィルターメソッドが12アイテムの配列を単純に繰り返し、同じ12アイテムを返すことです。インデックスのアイテムは、常に現在のアイテムと一致します。

このソリューションを試してください:

$(document).ready(function() {
    var $a = $('.unique a');
    var unique = {};

    for (i = 0; i < $a.length; i++) {
        var itemText = $($a[i]).text();
        if (unique[itemText]) {
            $($a[i]).remove();
        }
        else {
            unique[itemText] = true;
        }
    };

    $('.unique').show();
});

デモを見る

uniqueオブジェクトとして宣言しました。itemtextこのオブジェクトは、のを割り当てるプロパティとしてを追加することにより、すでに処理した各アンカーテキスト値の記録を保持しますtrue。これは、JavaScriptの動的な性質により、その場でオブジェクトにプロパティを割り当てることができるために可能です。

Boete voor RET om studentenreisgegevens true
Bulgarije geeft afbeelding vrij van verdachte aanslag true
Ecuador verleent Wikileaks-baas Julian Assange politiek asiel true

呼び出すときは、オブジェクトに、にあるものと一致する名前のプロパティの値を指定するunique[itemText]ように要求しています。 uniqueitemText

プロパティが存在する場合は、プロパティtrueに割り当てた値として値が返されます。すでに処理した値をソースから削除します。
プロパティが見つからない場合は、undefinedが返され、プロパティがオブジェクトに動的に追加されunique、値が。に割り当てられますtrue

ソースから重複が削除されたので、コンテナを再び表示します。

于 2012-08-16T12:48:28.657 に答える