1

言語ごとに翻訳する必要がある月次表があります

このようなもの(明らかに機能しません)

$('.lang-en #monthly th').each(function() {
    var text = $(this).text();
    $(this).text(text.replace('Tam', 'Jan')); 
    $(this).text(text.replace('Hel', 'Feb')); 
    $(this).text(text.replace('Maa', 'Mar')); 
    $(this).text(text.replace('Huh', 'Apr')); 
    $(this).text(text.replace('Tou', 'May')); 
    $(this).text(text.replace('Kes', 'Jun')); 
    $(this).text(text.replace('Hei', 'Jul')); 
    $(this).text(text.replace('Elo', 'Aug')); 
    $(this).text(text.replace('Syy', 'Sep')); 
    $(this).text(text.replace('Lok', 'Oct')); 
    $(this).text(text.replace('Mar', 'Nov'));
    $(this).text(text.replace('Jou', 'Dec')); 
    $(this).text(text.replace('Yht', 'Total'));

});
4

1 に答える 1

2

元の文字列と置換文字列の間のマッピングを維持し、関数をtext()に渡すことができます。

var mapping = {
    "Tam": "Jan",
    "Hel": "Feb",
    // ...and so on...
};

$("#monthly th").text(function(index, originalText) {
    return mapping[originalText];
});

編集:テキストの一部のみを置き換えたい場合は、オブジェクトではなくネストされた配列を使用できます。

var mapping = [
    ["Tam", "Jan"],
    ["Hel", "Feb"],
    // ...and so on...
];

$("#monthly th").text(function(index, originalText) {
    var pattern = mapping[index];
    return originalText.replace(pattern[0], pattern[1]);
});
于 2012-06-08T10:24:32.333 に答える