我可以将HTML元素的文本绑定到字符串对象吗?

时间:2011-06-29 16:25:18

标签: javascript jquery web-applications localization string-table

我正在使用jQuery创建一个Web应用程序。 Web应用程序的所有元素都是使用jQuery(var $header = $("<div>");)创建的。我已经有了一个名为stringtables的对象,我有一些名为“no”,“en”等的子对象。

在页面加载时,将加载默认值,并将其中的字符串用于所有元素中的文本。有什么方法可以将所有元素绑定到字符串表,所以当我切换字符串表时,网站上的所有文本都会随之改变吗?

我希望在不重新加载页面的情况下更改应用程序语言。

2 个答案:

答案 0 :(得分:3)

不,你不能。你应该手动创建&amp;调用更新函数,将元素的内容更改为新元素。

例如:

// function to set new strings to elements' contents
function setLang(langStrings) {
  $.each(langStrings, function(elemId, elemText) { $('#'+elemId).text(elemText) });
}
// function to load language by name
function loadLang(langName) {
  $.getJSON('/lang/' + langName + '.json', setLang);
}
// loading default language
$(function() { loadLang('default') });

答案 1 :(得分:2)

您是否愿意使用其他类型的技术?如果是这样,angularjs似乎正是您所需要的。