2013-08-03 77 views
5

我有一個小問題,我有一個翻譯JSON變量。 我想把它放在HTML上。有什麼辦法可以讓它變成現實嗎?如何將變量插入HTML

我的JS文件:

var Karting = Karting || {}; 

Karting = { 

lang : 'lv', 
translationsLV: { 
    "Home" : "Ziņas", 
}, 
} 

,我想這樣做:

我的頁面是靜態的,我沒有使用任何模板引擎。

<li><a class="active" href="#">Karting.translationsLV['Home']</a></li> 

編輯:

添加了這個:

$(window).load(function() { 
     var translations; 
     if (Karting.lang=='lv') 
     { 
      translations = Karting.translationsLV; 
     } 
     else 
     { 
      translations = Karting.translationsENG; 
     } 
      }, false); 

這並不表明我的元素

document.write(translations['Home']) 

UncaughtRefferenceError - 翻譯沒有定義

回答

11

一種方法是使用document.write

<li><a class="active" href="#"><script>document.write(Karting.translationsLV['Home'])</script></a></li> 
+0

抱歉打擾,但我做錯了什麼在我的編輯? – Cheese

+0

@Cheese試圖在'$(window).load'函數之外放置這行代碼:'var translations;'放在函數之前,只是放在函數的前面 – Cherniv

+0

仍然不能讀取屬性undefined – Cheese

0

所有的JSON首先是不正確的。那裏有一個額外的逗號。它應該是

{ 
lang : 'lv', 
translationsLV: { 
    "Home" : "Ziņas", 
} 
} 
+0

您還有一個額外的逗號以及 – iConnor

+0

好的,所以在JSON中尾隨逗號是**不是**不正確,儘管它在舊版瀏覽器中會造成一些問題。你已經刪除了一個尾隨逗號,但你仍然留下了一個。 – iConnor

+0

逗號不適用於JSON它適用於變量卡丁車 – Cheese

3

只需在這種情況下使用innerHTML。

var Karting = { 
    lang : 'lv', 
    translationsLV: { 
     Home: "Ziņas" 
    } 
}, 
homeInfo = document.getElementById('homeInfo'); 
homeInfo.innerHTML = Karting.translationsLV.Home; 

HTML:

<li><a id="homeInfo" class="active" href="#"></a></li> 
+0

這打破了CSS,我的元素漂浮在了它想要的位置 – Cheese

+0

這是怎麼打破你的CSS? – iConnor