@artem78

Как получить предпоследний элемент в PHPQuery?

Вопрос простой - как в phpquery получить элемент по номеру с конца?

<?php
	$html = <<<EOD
<div style="text-align: center;" class="navigation">
				<span class="pagination">
					<span>« novější</span> | 
					<span>1</span> | 
					<a href="?listType=&amp;sort=&amp;page=1">2</a> | 
					<a href="?listType=&amp;sort=&amp;page=2">3</a> | 
					<a href="?listType=&amp;sort=&amp;page=3">4</a> | 
					<a href="?listType=&amp;sort=&amp;page=1">starší »</a>
				</span>
			</div>
EOD;

	$dom = PHPQuery::newDocument($html);
	var_dump($dom->find('.navigation > .pagination > *')->eq(-2)->text());
	var_dump($dom->find('.navigation > .pagination > *:last-child(2)')->text());


Выдаёт:
string(0) ""
string(11) "starší »"


А нужно - 4.
  • Вопрос задан
  • 1431 просмотр
Пригласить эксперта
Ответы на вопрос 1
Первое что пришло в голову, так это то, что можно получить путем подсчета общего количества элементов(это как вариант, если метод выше не сработает), то есть:

$dom   = PHPQuery::newDocument($html);
$elems = $dom->find('.navigation > .pagination > *');

if( $elems->length ) {
    $penult = $elems->length - ($elems->length > 2 ? 2 : 1);

    var_dump($elems->eq($penult)->text());
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы