【发布时间】:2012-03-15 13:08:30
【问题描述】:
我在循环中使用函数时遇到问题,该函数包含一个 switch 语句,它会分解代码(字面意思),因为 switch 语句包含中断。
function presentation(input, fixedid)
{
switch(fixedid)
{
case 1:
output = namesplice(input);
break;
case 6:
output = str_remain(input, '0123456789');
break;
case 8:
output = str_replace(' ', '', strtoupper(input));
break;
case 11:
output = str_remain(input, '0123456789');
break;
default:
output = input;
break;
}
return output;
}
for (i=1;i<=cellCount;i++)
{
label = $('#cell0_'+ i).html();
for (j=1;j<=count(targetcolumns);j++)
{
if (jQuery.inArray(strtolower(label), sub[targetcolumns[j] + '_label']) >= 0)
{
result = $('#content'+ i).html();
result = presentation(result, j);
$('#result'+ j).append(result);
}
}
}
这段代码出错了:result = presentation(result, j);
其余代码的作用并不重要,您唯一应该知道的是它在两个循环内。 该函数被调用,然后跳出第一个循环,重新开始,从而创建一个无休止的循环。
如何在不破坏其余代码的情况下使用该函数?
【问题讨论】:
-
It go wrong wrong 是什么意思? breaks out of the first loop 在这里是什么意思?怎么了?应该发生什么?
count、strtolower和所有其他函数是否实际定义?看起来有点像 PHP 和 JavaScript 的混合体。 -
在使用该函数时,附加到id为result1的div上的结果是一个无休止的同值链。所有其他功能都已定义并可以正常工作。我使用 PHPjs,因此与 PHP 相似。当我直接调用函数表示时,不在循环中它工作正常。
-
一个“无休止”的链意味着你有一个无限循环,但是代码会挂起并且永远不会显示值。运行代码时会发生什么,有多少个值?
-
在 jsfiddle 上做一个例子时,我发现问题出在 str_replace 函数上,在某些组合中它似乎打破了循环。
标签: javascript jquery