2016-07-25 14 views
0

以下に示すように、私は自分のウェブサイトで選択した言語の訪問者を検索できるようにjsの式を書きました。JS:値を取得してから数値を返します

最後に、私はさらに進んでいきたいと思います:選択された言語が取得されたら、各言語の数値を返す式が必要です。 たとえば、選択された言語が "en"の場合、スクリプトは "1"を返します。

このスクリプトを改善するために手伝ってください。お使いの言語が見つけ

tC.internalvars.metalanguage = ""; 
var metas = document.getElementsByTagName('meta'); 
for (var i=0; i<metas.length; i++) { 
    if (typeof metas[i].getAttribute("http-equiv") != "undefined" && metas[i].getAttribute("http-equiv") == "Content-Language" && typeof metas[i].getAttribute("content") != "undefined" && metas[i].getAttribute("content") !== "") { 
    tC.internalvars.metalanguage = metas[i].getAttribute("content"); 
    } 
} 
+0

上記のスクリプトは切断されているようだ。tC.internalvars.meta言語= ""; var metas = document.getElementsByTagName( 'meta'); for(var i = 0; i

+0

数字をどのようにして言語に関連付けるのですか? "en"が1であることに加えて、他の人とどのように関連付けるべきかを決める方法は? { 'ド' 、1: 'エン' 2、 //よう ON} するvar langMap =を:私はあなたがマッピングオブジェクトを提供すべきであると信じ – kamoroso94

+0

とマッピングされた値を返す: 戻りlangMapを[ value] //値はあなたの "en"文字列です –

答えて

0

、あなただけのこのようなループを停止する必要があります:あなたがこれ以上ここに必要としないよう、あなたが他の要素をスキップする。このように

for (var i=0; i<metas.length; i++) { 
    if (typeof metas[i].getAttribute("http-equiv") != "undefined" && metas[i].getAttribute("http-equiv") == "Content-Language" && typeof metas[i].getAttribute("content") != "undefined" && metas[i].getAttribute("content") !== "") { 
    tC.internalvars.metalanguage = metas[i].getAttribute("content"); 
    // now you find the language and break here 
    break; 
    } 
} 

を。マッピングについて

、簡単な方法は、それはハッシュマップのようなものです、あなたのメインスコープでプレーンなオブジェクトを定義することです:

var languages = { 
    "en": 1, 
    "it": 2, 
    // ... so on 
} 

だから、あなたと言語コードを得ることができます:

var langCode = languages[tC.internalvars.metalanguage]; 

それとも、関数内から値を返すことができます:

return languages[tC.internalvars.metalanguage]; 
関連する問題