gpt4 book ai didi

javascript - 如何将字符串转换为对象的属性,它也是一个对象

转载 作者:行者123 更新时间:2023-11-28 18:21:42 24 4
gpt4 key购买 nike

我正在做一些多语言更改,这里是代码 jsfiddle
html 和 jQuery:

var dict = {
fr: {
'hello' : 'Bonjour',
'bye' : 'Au revoir'
},
en: {
'hello' : 'Hello',
'bye' : 'Bye'
}
};

function text (lang){
$('h1').html(dict.lang.hello);
$('p').html(dict.lang.bye);
};

$('a').click(function (){
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”对象中的文本,我存储了<a>的“标题”标签,但是当我将它作为参数放入函数“text”时,控制台显示“TypeError:dict.lang is undefined”,我明白var selected是一个字符串,不能替换对象中的“fr”和“en”。
那么问题来了:
如何将字符串转换为对象的属性,它也是一个对象?

最佳答案

将其用作dict[lang].hellodict[lang].bye

var dict = {
fr: {
'hello' : 'Bonjour',
'bye' : 'Au revoir'
},
en: {
'hello' : 'Hello',
'bye' : 'Bye'
}
};

function text (lang){
$('h1').html(dict[lang].hello);
$('p').html(dict[lang].bye);
};

$('a').click(function (){
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>

关于javascript - 如何将字符串转换为对象的属性,它也是一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39765287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com