JS code
function(biuldindex){
var max;
for(var i=1;i<max;i++){
switch (biuldindex){
case i:
return document.getElementById("text"+i).innerHTML;
}
}
}HTML code
<div id="test1">test1</div>
<div id="test2">test2</div>
<div id="test3">test3</div>
<div id="test4">test4</div>
...
如何先判断getElementById返回多少DIV,然后在JS switch 里实现数字递增? 要求保留 function(biuldindex){  和 switch (biuldindex){ 。如: html里有 div#test1,div#test2 则 JS switch 的代码等价于
switch (biuldindex){
case 1:
return document.getElementById("text1").innerHTML;
case 2:
return document.getElementById("text2").innerHTML;
}html里有 div#test1,div#test2,div#test3,div#test4 则 JS switch 的代码等价于
switch (biuldindex){
case 1:
return document.getElementById("text1").innerHTML;
case 2:
return document.getElementById("text2").innerHTML;
case 3:
return document.getElementById("text3").innerHTML;
case 4:
return document.getElementById("text4").innerHTML;
}

解决方案 »

  1.   

    答案就是不用switch,因为根本不需要你的biuldindex和case中的i肯定存在某种函数关系.根据你的代码发现竟然是biuldindex==i的关系,那就更简单了你把你的那一大段switch换成如下代码即可return document.getElementById("text"+biuldindex).innerHTML;
      

  2.   


    function(biuldindex){
    var str="switch (biuldindex){  ";
    var max;
    for(var i=1;i<max;i++){                      
    str+="case "+i+":";
    str+=" return document.getElementById('text'"+i+").innerHTML;";
    }
    str+="}";
    eval(str);
    }
      

  3.   

    非要switch大概就这么个意思 max的值再赋一下就是了
      

  4.   

    没明白楼主要做什么
    如果是取一个div 的值:return document.getElementById("text"+biuldindex).innerHTML;
      

  5.   

    我看还是让if{}else if{}...else{}递增的好
      

  6.   

    一定要switch,1楼的方法我也知道,太简单的问题就不麻烦大家了。
    #4楼 的答案看上去没有错,但不知为何没有效果,IE和FIREBUG也没有报错。我用
    switch (biuldindex){                        
    case 1:
    return document.getElementById("text1").innerHTML;
    case 2:
    return document.getElementById("text2").innerHTML;
    case 3:
    return document.getElementById("text3").innerHTML;
    case 4:
    return document.getElementById("text4").innerHTML;
    }
    可以显示正常的效果。
      

  7.   

    try{
         return document.getElementById("text"+biuldindex).innerHTML;
    }catch(e){
         return null;
    }
      

  8.   

    还有这个规定一定要用switch的?
    简单的方法不用,偏偏去搞复杂的,而且效率也不好
      

  9.   


    function mytest(biuldindex){
    var str="switch (biuldindex){  ";
    var max=4;
    var res="";
    for(var i=1;i<max;i++){                      
    str+="case "+i+":";
    str+=" res=document.getElementById('test"+i+"').innerHTML;\n";
    }
    str+="}";
    eval(str);
    return res
    ;}
      

  10.   

    怎么用呀?能不能给一个完整的JS部份和DIV部份代码,请指教一下!麻烦发邮箱,[email protected]