1

キーと値のペアの配列/オブジェクトを使用してjqueryで検索/検索/置換を行うための便利な投稿を見つけました。

しかし、私はそれを機能させることができません、

サイトのテストURLは次のとおりです。

http://www.larryadowns.com.php5-1.dfw1-2.websitetestlink.com/

ご覧のとおり、これは投稿情報を含むブログフィードです。私は日付の月をターゲットにして、スペイン語の月に入れるためにそれぞれを検索して置き換えようとしています。

これがjavascriptで、すべてjQuery(document).ready()にラップされています...

    var monthMap = {
        "January" : "Enero",
        "February" : "Febrero",
        "March" : "Marzo",
        "April" : "Abril",
        "May" : "Mayo",
        "June" : "Junio",
        "July" : "Julio",
        "August" : "Agosto",
        "September" : "Septiembre",
        "October" : "Octubre",
        "November" : "Noviembre",
        "December" : "Diciembre"
    };

    // sift thru the post-info, replacing only the month with the spanish one.
    $(".post-info .date").text(function(index, originalText) {

        var moddedText = '';

        for ( var month in monthMap ) {

            if (!monthMap.hasOwnProperty(month)) {
                continue;
            }

            moddedText = originalText.replace(month, monthMap[month]);

//            moddedText = originalText.replace( new RegExp(month, "g") , monthMap[month] );

            console.log("month : " + month);
            console.log("monthMap[month] : " + monthMap[month]);
        }

        console.log('-------------------');
        console.log('index : ' + index);
        console.log("monthMap : " + monthMap);
        console.log("originalText : " + originalText);

        console.log("moddedText : " + moddedText);

        return moddedText;
    });

しかし残念ながら、.replaceも.replace with RegExも、実際には何も置き換えていません。どこで私は間違えましたか?再びスタックします。

4

1 に答える 1

2

理由はよくわかりませんが、moddedTextその後の数か月間、コードが元のコードに戻っていたようです。このため、12月を正しく置き換えるだけでした。

私は少し異なる方法を使用しましたが、それはあなたが探しているものを生み出すはずです。

$(".post-info .date").text(function(index, originalText) {

    for ( var month in monthMap )
    {
        if (originalText.indexOf(month) > -1)
        {
            return originalText.replace(month, monthMap[month]);
        }
    }

    return originalText;
});

完全なコードとデモについては、このjsFiddleを確認してください。

于 2012-07-09T16:10:22.627 に答える