Я ищу подобное решение для аналогичной проблемы. В моем случае я хочу выбрать последний dd
в группе dd
, поэтому любой dd
, за которым следует dt
или первый дочерний элемент dl
(поскольку по какой-либо причине этот позволено).
Я также не нашел чистого решения CSS. Я возился с множеством правил, так что все, что осталось, было бы (в вашем случае) «пустым» dt
, но не все включено.
Если я заставлю это работать, я дам вам знать. В противном случае решение, подобное селектору (таким образом, сохраняющий любой другой синтаксис селектора), является селектором jquery non-css :has()
. Итак, в вашем случае:
$("dt:not(:has(+dd))").addClass("empty_def");
$("dt:has(+dd)").addClass("non_empty_def");