我使用了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>
。
我想替代
“腿”
与
“ Etape”
这就是说,我要转换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文件?
答案 0 :(得分:0)
首先,首先要使用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>");
}
});
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
然后,如果您只想用Etape替换Leg:
lowCostHotels.LOW_COST.forEach(function(entry) {
if (entry.city == inputCity) {
$("#tbody2").append("<tr><td>" + entry.name().replace("Leg", "Etape") </td></tr>");
}
});
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace
但是您几乎可以在此处手动翻译/更改JSON。如果您使用的翻译方法无法正确翻译所有内容,建议您使用另一种翻译方法。另一方面,如果您只需要快速修复一些遗漏的单词,则只需用replace()即可解决问题。