Показать сообщение отдельно
  #25 (permalink)  
Старый 18.09.2015, 08:30
Аспирант
Отправить личное сообщение для ninja2 Посмотреть профиль Найти все сообщения от ninja2
 
Регистрация: 07.06.2015
Сообщений: 90

А почему у меня не выводятся остальные элементы после первого которые я получаю с помощью getElementsByTagName ???
var links=page.evaluate(function() {
                    return document.getElementsByTagName('img');
                    });
                    console.log("links.length="+links.length);

                    console.log(links[0].src);//выводится нормально
                    console.log(links[1].src);//этот уже не выводится
                    for(var i=0;i<links.length;i++)
                    {
                        console.log(i);
                        console.log(links[1].src);//не выводится
                    }

1 элемент выводится и зависает на console.log(links[1].src); в чем проблема????
Выводит что 10 элементов в массиве, а получаю только один, остальные виснут. Как получить все src????

Разобрался, вывел просто console.log(links[i]); и оказалось что в 0 есть [object] а в остальных null, и что делать, почему функция вернула null и 9 элементов?
Как получить все изображения на странице???

querySelectorAll тоже также в первом элементе есть объект, а в 9 нету

От такой код работает, когда его в конец страницы добавляю
<script>
    var mass= document.querySelectorAll('img');
    alert(mass.length);
    for(var i=0;i<mass.length;i++) {
        alert(mass[i].src);
    }
</script>

и вообще length тут 12, а у меня 10, че то evaluate не правильно как то работает.

через JQuery получилось получить 10 изображений, через функции jS ниче не работает

Короче ясно, нужно и массив в функции evaluate обходить, тогда все нормально. Наверно JavaScript функции и работать не будут вне evaluate. Какаето фигня.

Последний раз редактировалось ninja2, 18.09.2015 в 09:20.
Ответить с цитированием