private function QueryPathCssEventHandler::getByPosition in QueryPath 6
Same name and namespace in other branches
- 7.3 QueryPath/CssEventHandler.php \QueryPathCssEventHandler::getByPosition()
- 7.2 QueryPath/CssEventHandler.php \QueryPathCssEventHandler::getByPosition()
1 call to QueryPathCssEventHandler::getByPosition()
- QueryPathCssEventHandler::pseudoClass in QueryPath/
CssEventHandler.php
File
- QueryPath/
CssEventHandler.php, line 506
Class
Code
private function getByPosition($operator, $pos) {
$matches = $this
->candidateList();
$found = new SplObjectStorage();
if ($matches
->count() == 0) {
return;
}
switch ($operator) {
case 'nth':
case 'eq':
if ($matches
->count() >= $pos) {
foreach ($matches as $match) {
if ($matches
->key() + 1 == $pos) {
$found
->attach($match);
break;
}
}
}
break;
case 'first':
if ($matches
->count() > 0) {
$matches
->rewind();
$found
->attach($matches
->current());
}
break;
case 'last':
if ($matches
->count() > 0) {
foreach ($matches as $item) {
}
$found
->attach($item);
}
break;
case 'lt':
$i = 0;
foreach ($matches as $item) {
if (++$i < $pos) {
$found
->attach($item);
}
}
break;
case 'gt':
$i = 0;
foreach ($matches as $item) {
if (++$i > $pos) {
$found
->attach($item);
}
}
break;
}
$this->matches = $found;
}