我使用jquery-lang-js插件动态地翻译我的网页中的一些元素,它可以工作。更具体地说,我可以翻译HTML文件中包含的每个元素。
我编写了一个回调函数,以便在需要时显示来自JSON文件的结果:
for (let i = 0; i < lowCostHotels.LOW_COST.length; i++) {
var entry = lowCostHotels.LOW_COST[i];
if (entry.city == inputCity) {
$("#tbody2").append("<tr><td>" + entry.name() </td></tr>");
}
}
}
});
};所示结果的一个例子是:
腿22 - Passo della Cisa - Pontremoli
它对应于第一个<td>。
我想代替
“腿”
使用
“磁带”
也就是说,我希望翻译包含在JSON文件中的字符串的单个部分:
{
"legs": [
{
"name": "Leg 22 - Passo della Cisa - Pontremoli",
"state": "Italy",
"region": "Tuscany",
"city": "Groppoli (Mulazzo)"
},
{
"name": "Leg 22 - Passo della Cisa - Pontremoli",
"state": "Italy",
"region": "Tuscany",
"city": "Groppodalosio"
}
]
}我想对50 <tr>中的每一个做这件事。
有什么方法可以轻松地做到这一点吗?还是我应该编写一个不同的JSON文件?
发布于 2019-07-04 15:27:44
首先,应该使用forEach,而不是使用一个for。始终使用js对象(如数组和字符串)本机提供的助手函数。它们速度更快,阅读时间更短,写作时间更短。另外,如果您使用的是ES6,也可以查看箭头函数。
for (let i = 0; i < lowCostHotels.LOW_COST.length; i++) {
var entry = lowCostHotels.LOW_COST[i];
if (entry.city == inputCity) {
$("#tbody2").append("<tr><td>" + entry.name() </td></tr>");
}
}变成:
lowCostHotels.LOW_COST.forEach(function(entry) {
if (entry.city == inputCity) {
$("#tbody2").append("<tr><td>" + entry.name() </td></tr>");
}
});如果你只想用胶带代替腿:
lowCostHotels.LOW_COST.forEach(function(entry) {
if (entry.city == inputCity) {
$("#tbody2").append("<tr><td>" + entry.name().replace("Leg", "Etape") </td></tr>");
}
});但是您在这里几乎是在手动转换/更改JSON。如果您使用的翻译方法并不是所有的翻译都是正确的,那么我建议您考虑另一种翻译方法。另一方面,如果您只需要快速修复几个遗漏的单词,那么只需要一个替换()就可以了。
https://stackoverflow.com/questions/56890664
复制相似问题