我做了一点多语言的变化,这里是代码jsfiddle
HTML和jQuery:如何将字符串转换为对象的属性,它是一个对象太
var dict = {
\t fr: {
\t 'hello' : 'Bonjour',
'bye' : 'Au revoir'
},
\t en: {
\t 'hello' : 'Hello',
'bye' : 'Bye'
}
};
function text (lang){
\t $('h1').html(dict.lang.hello);
$('p').html(dict.lang.bye);
};
$('a').click(function(){
\t var selected = $(this).attr('title');
text(selected);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#/" title="fr">fr</a>
<a href="#/" title="en">en</a>
<h1>Bonjour</h1>
<p>Au revoir</p>
什么我想要的是:点击“en”或“fr”来改变“dict”对象中的文本,我存储了标签的“标题”,但是当我把它放到函数“text”作为参数时,控制台显示“TypeError:dict.la ng是未定义的“,据我所知var selected
是一个字符串,它不能代替对象中的”fr“和”en“。
所以这里是问题:
如何将字符串转换为对象的属性,它也是一个对象?
没有'lang'上'dict'变量道具! –
使用方括号表示法:'dict [lang] .hello' https://jsfiddle.net/xra81qg6/12/ –