2013-04-26 2 views
4

Ниже приведен код, который я использую. Верхняя часть $('div.pagination... отлично работает, я могу alert(length), и это дает мне правильное значение страниц в разделе разбиения на страницы. Нижняя часть кажется неработоспособной. Это для скребка, который откроет каждую страницу на форуме. Если я выйду из цикла, он успешно retreaves url для страницы here. length -=2 должен удалить следующий/предыдущий li из общего количества.javascript loop через li в div paginate

$('div.pagination').each(function() { 
    var length = $(this).find('li').length; 
    length -= 2; 
}); 

for (var i = 0; var <= length; i++) { 
    var pageToOpen = 'http://someWebsite.com/index/page:' + i; 
    alert(pageToOpen); 
    page.open(pageToOpen, function (status) { 
     if (status == 'success') { 
      logAuctions(); 
     } 
    }}); 
} 
+3

в цикл: для (вар я = 0; я <= длина; я ++) ... заменить второй вар с я – tschulze

+0

я вас не понимаю , 'length' и все числа, которые будут использоваться, возможно, это не настоящая страница' .../page: Number', в которой вы нуждаетесь. Что ты задумал? –

ответ

2

Определите var length снаружи (до того) .each()

Использование .lentgh метода вы можете пропустить реальные страницы индексов. Поэтому я бы предложил взять настоящий якорь href s.

FIDDLE DEMO

var pages = []; 

// skipping the "Next" and "Last" get all A ahchors 
$('div.pagination li').slice(0,-2).find('a').each(function(){ 
    pages.push($(this).attr('href')); 
}); 

$.each(pages, function(i, v){ 
    $('<div>'+ ("http://someWebsite.com"+v) +'</div>').appendTo('#output'); 
}); 




/* WILL RESULT IN: 

http://someWebsite.com/auctions/index/page:2 
http://someWebsite.com/auctions/index/page:3 
http://someWebsite.com/auctions/index/page:4 

*/ 
+0

Почему не 'var length = $ ('div.pagination li'). Length - 2;' –

+1

Итак, моя проблема заключалась в том, что длина была определена в функции и недоступна в цикле? – SuperNoob

+0

В этом случае вы также можете думать о $ .map? –

Смежные вопросы