Javascript 如何通过字符串定位对象中的值以转换页面上的元素
我有一个物体,假设它看起来像这样Javascript 如何通过字符串定位对象中的值以转换页面上的元素,javascript,object,Javascript,Object,我有一个物体,假设它看起来像这样 { “exportRoot”:{ “翻译”:{ “导航栏”:{ “navbarLink1”:“开始”, “navbarLink2”:“能量”, “navbarLink3”:“温暖”, “navbarLink4”:“水”, “navbarLink5”:“配置” } } } } 我有一组元素,其中包含一类lang_text,它将在函数中迭代。我检查当前正在查看的元素的id。这看起来总是这样的translate.navbar.navbarLink1。现在我想说,el
{
“exportRoot”:{
“翻译”:{
“导航栏”:{
“navbarLink1”:“开始”,
“navbarLink2”:“能量”,
“navbarLink3”:“温暖”,
“navbarLink4”:“水”,
“navbarLink5”:“配置”
}
}
}
}
我有一组元素,其中包含一类lang_text
,它将在函数中迭代。我检查当前正在查看的元素的id。这看起来总是这样的translate.navbar.navbarLink1
。现在我想说,element.innerHTML=exportRoot.id
。这似乎不起作用,我认为这可能与本例中的id是字符串这一事实有关
let ele=document.getElementsByClassName('lang_text');
for(设i=0;i
有人知道我如何才能最好地将元素与对象中的正确键进行匹配吗?这是您描述的简单示例 在
translate()
在循环中,我读取此属性内容,并将其拆分为下一个键数组,并将它们提供给searchTranslations()
函数
在searchTranslations()
函数中,我正在检查key是否是一个对象,如果是,我将再次调用此函数,但这次在这个对象上,要查找的键少了一个。
若项目不是一个对象,我将返回它,假设它是我需要的字符串
const translationTable={
翻译:{
导航栏:{
navbarLink1:“开始”,
navbarLink2:“能量”,
navbarLink3:“温暖”,
navbarLink4:“水”,
导航栏链接5:“配置”
}
}
}
const searchTranslations=(translationTable,translationKeyArray)=>{
常量索引=translationKeyArray[0];
if(typeof(translationTable[index])=='object'){
translationKeyArray.shift();
返回searchTranslations(translationTable[index],translationKeyArray);
}
返回translationTable[索引];
};
常量翻译=()=>{
document.querySelectorAll(“[translate key]”)。forEach(element=>{
常量translateKeyArray=element.getAttribute('translate-key').split('.');
element.innerText=searchTranslations(translationTable,translateKeyArray);
});
};
翻译()代码>
-
-
-
-
-
ele[i].innerHTML=exportRoot.translate.navbar.currentName
?您可以在点上拆分id,并使用索引符号钻取exportRoot。您也可以考虑使用本地化的框架,这非常好,非常感谢!我花了一些时间才弄明白它是如何找到匹配项的,但索引不必是数字