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循环,但我不知道如何实现它.有什么建议?
尝试:
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)