我要在页面(worpress网站)上进行大量翻译,我想使用javascript而不是使用php代码。因此,在使用getElementsByClassName选择一个返回HTML集合的类,然后将其转换为Array,然后使用forEach函数更改textContent时,我有许多类似的操作要执行。很简单,它可以工作:
let verMas = document.getElementsByClassName('read-more-button');
let verMasA = Array.from(verMas);
verMasA.forEach(function(verMasL){
verMasL.textContent = 'Ver mas...';
});
问题是我有几个这样的小翻译可以完成基本上相同的所有操作,因此显而易见的解决方案是将以上内容转换为函数,但我做错了。这是我所做的:
function traducirArray(a,cla,b,c,d) {
let a = document.getElementsByClassName(cla);
let b = Array.from(a);
b.forEach(function(c){
c.textContent = d;
return d;
});
}
traducirArray(verMas, 'read-more-button',verMasA,verMasL,'Ver más');
最后,我调用了该函数,但是它不起作用。我究竟做错了什么?
最佳答案
如注释中所述,您无需在函数范围之外创建局部变量(特别是对于a,b和c)。相反,只需将类名和新的文本内容传递给函数:
function traducirArray(className, content) {
let a = document.getElementsByClassName(className);
let b = Array.from(a);
b.forEach(function(c) {
c.textContent = content;
});
}
traducirArray('prettyPrint', 'Ver más');