Есть несколько способов сделать это.Самый простой - использовать псевдокласс CSS 3 :nth-of-type()
.Это получает второй LI непосредственно внутри UL:
qp($html, 'ul>li:nth-of-type(2)');
:nth-of-type
, а другие селекторы CSS 3 принимают так называемые правила "an + b", где вы можете сказать, сколько элементов составляют группу, а затем скажите, какой элемент из группы вы хотите.Например, tr:nth-of-type(4n+2)
разделит строки таблицы на группы по 4, а затем вернет второй элемент в каждой группе.:even
и :odd
- это просто сокращение для 2n
и 2n+1
.
Другие CSS, на которые стоит обратить внимание:
- ': nth'
- ': first-of-type', ': first'
- ': last-of-type', ': last'
- ': even', ': odd'
- ': not ()', ': has ()' и ': contains ()'
Вы также можете получить все элементы LI, а затем просто получитьвторой:
qp($html, 'li')->eq(2);
Или, как указывал предыдущий плакат, вы можете получить фактический объект DOMNode
для второго, используя get()
:
qp($html, 'li')->get(2);
Еслиу вас действительно сложные потребности, вы можете использовать filter()
, чтобы взять список и запустить его с помощью пользовательской функции.