2016-07-25 46 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 language =「」; var metas = document.getElementsByTagName('meta'); (var i = 0; i

+0

你應該如何將數字與語言聯繫起來?除了「en」是1,你如何確定與其他人相關聯? – kamoroso94

+0

相信你應該提供一個映射對象: VAR langmap的= { 'EN':1, '德':2, //等 } 並返回映射值: 返回langmap的[值]是你的「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 langCode = languages[tC.internalvars.metalanguage]; 

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

所以,你可以用得到的語言代碼

或者你可以從一個函數中返回值:

return languages[tC.internalvars.metalanguage]; 
相關問題