我试图弄清楚如何循环这个而不是6个单独的版本。这显然是多余的代码。我在PHP中没有问题。
我想保留这个纯粹的JS。
function p1Name() {
document.getElementById('p1_name_1').innerHTML = (scorecard.p1[scorecard.p1.selectedIndex].text);
document.getElementById('p1_name_2').innerHTML = (scorecard.p1[scorecard.p1.selectedIndex].text);
document.getElementById('p1_name_3').innerHTML = (scorecard.p1[scorecard.p1.selectedIndex].text);
document.getElementById('p1_name_4').innerHTML = (scorecard.p1[scorecard.p1.selectedIndex].text);
document.getElementById('p1_name_5').innerHTML = (scorecard.p1[scorecard.p1.selectedIndex].text);
document.getElementById('p1_name_6').innerHTML = (scorecard.p1[scorecard.p1.selectedIndex].text);
document.getElementById('p1_name_7').innerHTML = (scorecard.p1[scorecard.p1.selectedIndex].text);
}
同样的功能重复6次。 p1,p2,p3,p4,p5,p6
答案 0 :(得分:1)
您只需要构建元素的名称(p(x)_name_(i)
)。由于您要调用该函数6次(对于p1...p6
),您应该将其作为参数(px
)传递给函数:
function pName(px) {
for (var i = 1; i <= 7; i++) {
document.getElementById(px + '_name_' + i).innerHTML = (scorecard.p1[scorecard.p1.selectedIndex].text);
}
}
然后,您将为每个p1...p6
调用此函数(根据您的情况,您可能也希望在循环中执行此操作)。我将把那个留给你,因为你可以使用与上述函数中相同的概念。
答案 1 :(得分:1)
Keiwan解决了这个问题...这个函数仍然需要多次调用...你可以访问记录卡[“p1”]等对象属性,例如scorecard.p1。所以,只打电话一次。
function pName(px) {
for (var i = 1; i <= 7; i++) {
document.getElementById(px + '_name_' + i).innerHTML = (scorecard[px][scorecard[px].selectedIndex].text);
}
}
提供的是px以字符串形式输入。