如何使用javascript字符串对象

时间:2012-01-30 23:59:52

标签: javascript jquery

我在使用语言文件时遇到问题。

目前,我有一个语言文件,我有一个像

这样的对象
var strings {
    title: "Title",
    subtitle: "Subtitle"
};

目前在我的HTML中,我会有类似

的内容
<div id="title">Title</div>
<div id="subtitle">Subtitle</div>

现在我想在div中包含来自javascript对象的值,以便我可以使用各种语言文件。相关的语言文件在后端通过php脚本选择,这不是问题。

例如

<div id="title">strings.title</div>
<div id="subtitle">strings.subtitle</div>

有一种简单的方法吗?我不想每次都使用php来创建必要的js文件,或者使用一个jquery循环来填充create上的每个div值,尽管现在它看起来就像我要做的那样。

由于

2 个答案:

答案 0 :(得分:1)

假设你有这个:

<script>
  var myJSVar = 'Hello, World!';
</script>

你可以直接输出它:

<script>
  document.write('<div>' + myJSVar + '</div>');
</script>

您可以将其附加到BOM:

<script>
  var div = document.createElement('div');
  div.innerHTML = myJSVar;
  document.getElementsByName('body')[0].appendChild(div);
</script>

您可以根据ID填充div:

<div id="foo"></div>

<script>
  document.getElementById('foo').innerHTML = myJSVar;
</script>

或任何其他众多选项。这实际上取决于你的目标,虽然现在你很模糊。

答案 1 :(得分:1)

HTML

<div id="title">strings.title</div>
<div id="subtitle">strings.subtitle</div>

JS

// this is what you get from the language file
var LanguageStorage = {
  strings: {
    title: "Title",
    subtitle: "Subtitle"
  }
}


// function for replace language
function placeLanguageFor(selector) {
  var thiz = $(selector);
  var lidArray = thiz.text().split("\.");
  thiz.text(LanguageStorage[lidArray[0]][lidArray[1]]);
}

// show text based on language
placeLanguageFor("#title");
placeLanguageFor("#subtitle");

这是您的代码http://jsfiddle.net/hq86p/