0

私は、自分のサイトに、RSS フィードへのリンクをいくつか持っています... 次のように:

ALL
example.com/rss

NEWS
example.com/rss?type=1

ARTICLES
example.com/rss?type=2

同じページにフィルターを挿入したいので...選択があります:

<select class="rss-list-platform">
<option value="">All</option>
<option value="1">Xbox</option>
<option value="2">PlayStation</option>
</select>

元のリンクに「&platform=val」を追加する jQuery コードを探していますが、選択で「すべて」オプションが選択されている場合は、「&platform=val」があれば削除する必要があります。

現在、次のコードがありますが、テキストを何度も追加し続けます...削除しません。

$(".rss-list-platform").change(function(){

        var ref_this = $(this);
        var original_str = "";

        $(".rss-list input").each(function(){

            original_str = $(this).val();
            add_str = original_str + "&platform=" + ref_this.val();

            $(this).val(add_str);
        });

    });
4

2 に答える 2

1

Run a quick check before you add:

original_str = this.value
    add_str = original_str + "&platform=" + ref_this.val();
    var check_str = "&platform=" + ref_this.val();
    if (this.value.indexOf(check_str) > -1) {
        //string is already there!
    } else {
        $(this).val(add_str);
    }

And to remove it, inside your change

if (this.value == 1) { //1 is for All
    $(".rss-list input").each(function(){
        var index = this.value.indexOf("&platform=");

        //remove it if it exists
        if (index > -1) this.value = this.value.substring(0, index);
    });
}
于 2013-10-02T21:02:32.300 に答える