/**
* Virtual properties, read property
*
* @param string $name
* @throws \UnexpectedValueException
* @return mixed
*/
public function __get($name)
{
switch ($name) {
case 'attr':
return new Query\Attributes($this);
case 'css':
return new Query\Css($this);
case 'data':
if ($node = $this->getFirstElement()) {
return new Query\Data($node);
} else {
throw new \UnexpectedValueException('UnexpectedValueException: first selected node is no element.');
}
}
return parent::__get($name);
}