减少Javascript函数长度

use*_*959 2 javascript for-loop

我有一个看起来像这样的javascript函数:

function myfun(){
//product.1
var t1=document.getElementById('1').innerHTML;
var link = document.getElementsByClassName(t1);

if(document.getElementsByClassName(t1).length==1){
document.getElementById(t1).innerHTML=link[0].outerHTML;
document.getElementById(t1).getElementsByTagName('a')[0].className='dsad';

}
if(document.getElementsByClassName(t1).length==2){
document.getElementById(t1).innerHTML=link[0].outerHTML+'; '+link[1].outerHTML;
var element = document.getElementById(t1).getElementsByTagName('a')[0].className='dsad';
var element2 = document.getElementById(t1).getElementsByTagName('a')[1].className='dsad';
}...
//product.2
var t2=document.getElementById('2').innerHTML;
Run Code Online (Sandbox Code Playgroud)

它就像那样直到if(document.getElementsByClassName(t1).length==10)然后它继续元素 - document.getElementById('2')依此类推,直到它达到元素数10.整个脚本大约有700行,我想以某种方式减少它.我在想一个for循环,但我不知道如何实现它.有什么建议?

laa*_*sto 5

尝试:

for( i = 1; i <= 10; i++ ){  
  if( document.getElementsByClassName( t1 ).length == i ){
    document.getElementById( t1 ).innerHTML=link[i-1].outerHTML;
    document.getElementById( t1 ).getElementsByTagName( 'a' )[ i-1 ].className = 'dsad';
  }
}
Run Code Online (Sandbox Code Playgroud)

编辑:

如果你还想增加元素id,你应该尝试:

for( i = 1; i <= 10; i++ ){  

var t1=document.getElementById(''+i).innerHTML;
var link = document.getElementsByClassName(t1);

      if( document.getElementsByClassName( t1 ).length == i ){
        document.getElementById( t1 ).innerHTML=link[i-1].outerHTML;
        document.getElementById( t1 ).getElementsByTagName( 'a' )[ i-1 ].className = 'dsad';
      }
    }
Run Code Online (Sandbox Code Playgroud)