【发布时间】:2011-12-19 22:23:30
【问题描述】:
我有一系列数组,其中包含我想在各种 HTML div 中用作文本的单词(其中大约有 35 个,为简洁起见,我只包括了几个)。
var bodyplan = ['Anguilliform', 'Compressiform', 'Depressiform', 'Filiform', 'Fusiform', 'Globiform', 'Sagittiform', 'Taeniform'];
var mouthposition = ["Inferior", "Jawless", "Subterminal", "Superior", "Terminal"];
var barbels = ['1', '2', '4 or more'];
var caudalshape = ['Continuous', 'Emarginate', 'Forked', 'Lunate', 'Rounded', 'Truncate'];
我有一个 switch 函数,它应该根据用户的选择来改变文本:
switch(n){
case 1:
changelabels(bodyplan, 8);
break;
case 2:
changelabels(mouthposition, 5);
break;
case 3:
changelabels(barbels, 3);
break;
case 4:
changelabels(caudalshape, 6);
break;
case 5:
changelabels(dorsalspines, 8);
break;
default:
alert("handquestsel error")}};
最后,我有了想要更改的功能(除非它没有):
function changelabels(opt1,opt2){
var i = opt2;
var im = opt2 - 1;
var c = 1;
var index = 0;
while (i>=c){
var oldlbl = document.getElementById("rb" + c + "lbl");
var newlbla = opt1.slice(im,i);
var newlblb = opt1.toString();
oldlbl.innerHTML = newlblb;
c = c + 1
index = index + 1
}};
我知道我的函数的代码在这一点上是完全错误的,但我已经修改了很多次,以至于我不确定发生了什么。在某一时刻,我确实拥有能够更改文本的函数,但它做得不正确(它解析了数组的名称,而不是像我希望的那样从数组中提取值)。请帮忙。我知道我在这里忽略了一些基本概念,但不确定哪些。我已经数不清我花了多少时间试图弄清楚这一点。看起来它应该如此简单,但在我所有混乱的尝试中,我还没有找到答案。
编辑:我希望我的 switch 语句调用函数并传递给函数,从中提取标签的适当数组。该应用程序的目的是帮助用户学习识别鱼。当用户在页面上进行选择时,将针对各种字符状态显示一系列图片,并附有描述状态的标签。例如,当用户选择嘴巴位置时,一系列 div 将显示鱼的不同嘴巴位置,并在图片下方有一个标签,告诉用户该特定角色状态被称为什么。我可以很好地改变图片,但我在标签上玩得很开心。
【问题讨论】:
-
“但我已经修改了很多次,以至于我不确定发生了什么”,即当你从办公桌上站起来,在大楼里走来走去 4 次,然后再回来。
-
你的最终目标是什么?更清楚地说明这一点可以帮助我们确定更好的解决方案。
-
我想帮忙,但我不知道你想做什么。您能否详细说明一下,或许可以为我们提供更多背景信息?
标签: javascript arrays function parameters