2013-08-27 110 views
-3

我在javascript中有一个forloop,它有120个值,我想要的是,我总是想跳过循环保存的第一个值,并且总想跳到下一个值,该循环将生成,因为我有几个条件,i的值不会总是0,1,2,3,4,5等。它可以是任何类似23,28,30,32等。下面是我的源代码: 看看循环的最后一行。在forloop中跳过第一个值

for (i = 0; i < document.links.length; i++) { 
    L = document.links[i]; 
    ext = (L.href.indexOf('?') == -1) ? L.href.slice(-4).toLowerCase() : L.href.substring(0, L.href.indexOf('?')).slice(-4).toLowerCase(); 
    if (ext != '.jpg' && ext != '.png' && ext != '.gif' && ext != 'jpeg') continue; 
    if (a == 'sh' && L.className.toLowerCase().indexOf('shutter') == -1) continue; 
    if (a == 'lb' && L.rel.toLowerCase().indexOf('lightbox') == -1) continue; 
    if (L.className.toLowerCase().indexOf('shutterset') != -1) 
     setid = L.className.replace(/\s/g, '_'); 
    else if (L.rel.toLowerCase().indexOf('lightbox[') != -1) 
     setid = L.rel.replace(/\s/g, '_'); 
    else setid = 0, inset = -1; 
    if (setid) { 
     if (!shutterSets[setid]) shutterSets[setid] = []; 
     inset = shutterSets[setid].push(i); 
    } 
    imgdetails = L.innerHTML; 
    console.log(imgdetails); 
    img1 = jQuery.trim(imgdetails); 
    alttext = jQuery(img1).attr('alt'); 
    shfile = L.href.slice(L.href.lastIndexOf('/') + 1); 
    T = (L.title && L.title != shfile) ? L.title : ''; 
    //alert(inset); 
    shutterLinks[i] = { 
     link: L.href, 
     num: inset, 
     set: setid, 
     title: T, 
     imagealt: alttext 
    } 
    //on below line, where i is being called i always want to skip the first value and always pass from second value. 
    L.onclick = new Function('shutterReloaded.make("' + i + '");return false;'); 
} 

任何人都可以请帮我这。

+3

在你想做什么*精确* *有点模糊。 –

+0

'continue'关键字可用于跳过循环的一次迭代。如果你有可以检测是否跳过的逻辑,你可以使用'continue;'就像'break'或'return;'一样。 –

+1

'for(var i = 1; etc'? – bfavaretto

回答

0

开始的1而不是0的指数( “为(i = 1 ;我< document.links.length;我++)”):

for (i = 1; i < document.links.length; i++) { 
    L = document.links[i]; 
    ext = (L.href.indexOf('?') == -1) ? L.href.slice(-4).toLowerCase() : L.href.substring(0, L.href.indexOf('?')).slice(-4).toLowerCase(); 
    if (ext != '.jpg' && ext != '.png' && ext != '.gif' && ext != 'jpeg') continue; 
    if (a == 'sh' && L.className.toLowerCase().indexOf('shutter') == -1) continue; 
    if (a == 'lb' && L.rel.toLowerCase().indexOf('lightbox') == -1) continue; 
    if (L.className.toLowerCase().indexOf('shutterset') != -1) 
     setid = L.className.replace(/\s/g, '_'); 
    else if (L.rel.toLowerCase().indexOf('lightbox[') != -1) 
     setid = L.rel.replace(/\s/g, '_'); 
    else setid = 0, inset = -1; 
    if (setid) { 
     if (!shutterSets[setid]) shutterSets[setid] = []; 
     inset = shutterSets[setid].push(i); 
    } 
    imgdetails = L.innerHTML; 
    console.log(imgdetails); 
    img1 = jQuery.trim(imgdetails); 
    alttext = jQuery(img1).attr('alt'); 
    shfile = L.href.slice(L.href.lastIndexOf('/') + 1); 
    T = (L.title && L.title != shfile) ? L.title : ''; 
    //alert(inset); 
    shutterLinks[i] = { 
     link: L.href, 
     num: inset, 
     set: setid, 
     title: T, 
     imagealt: alttext 
    } 
    //on below line, where i is being called i always want to skip the first value and always pass from second value. 
    L.onclick = new Function('shutterReloaded.make("' + i + '");return false;'); 
} 

虽然,你为什么会需要这样做目前还不清楚。