如何修改多个同ID元素的文本以实现翻译?已完成首个元素修改
临时定位重复ID元素的解决方案
由于插件生成了两个ID相同的<p>元素(不符合HTML规范,但作为临时方案可按以下方法处理):
方法1:使用.eq()方法指定索引
jQuery的#id选择器默认仅匹配第一个元素,通过.eq(index)可选取对应索引的元素(索引从0开始,第二个元素对应索引1):
// 处理第一个元素(索引0) $('#mdn-slice-product-page-display').eq(0).text(function(i, originalText) { return originalText .replace('makset', 'payments') .replace('kuus, ilma lisatasudeta', 'per month, no extra cost'); }); // 处理第二个元素(索引1) $('#mdn-slice-product-page-display').eq(1).text(function(i, originalText) { return originalText .replace('Järelmaks alates', 'Pay in installments from') .replace('/ kuu', '/ month') .replace('lepingutasu', 'setup fee'); });
方法2:属性选择器结合索引
也可通过属性选择器匹配所有ID为mdn-slice-product-page-display的元素,再选取第二个:
$('[id="mdn-slice-product-page-display"]').eq(1).text(function(i, originalText) { return originalText.replace('Järelmaks alates', 'Pay in installments from') .replace('/ kuu', '/ month') .replace('lepingutasu', 'setup fee'); });
补充说明
- 以上均为临时方案,待插件开发者修复ID重复问题后即可移除;
- 优化了文本替换逻辑,用
text()的回调函数一次性完成多次替换,避免重复读取/设置文本内容。
内容的提问来源于stack exchange,提问作者CD7
相关产品推荐
相关产品推荐

