2013-04-24 2 views
0

Это мой HTML:CSS: выбор n-го элемента с помощью идентификатора?

<dl id="id"> 
    <dt>test</dt> 
    <dd>whatever</dd> 
    <dt>test1</dt> 
    <dd>whatever2</dd> 
    .... 
</dl> 

Я хочу, чтобы выбрать третий дд, но я не могу заставить его работать. Это то, что я пробовал:

dl#id dd:nth-child(3) { 
    color: yellow; 
} 

Стиль не применяется, что не так?

Спасибо!

+1

Нет, DD не является третьим ребенком, вам придется изменить его на 'nth-child (6)', чтобы соответствовать этому DD. Вам нужно будет использовать ': nth-of-type' для соответствия элементу и номеру. – Kyle

ответ

5

3-й ребенок #id на самом деле является <dt>test1</dt>, поэтому селектор не соответствует ни одному.

Было бы более целесообразно использовать :nth-of-type селектор здесь:

dl#id dd:nth-of-type(3) 

Также можно воспользоваться довольно жесткой HTML структуры (пары <dt>/<dd>) и просто написать dl#id :nth-child(6), но в в этом случае это бессмысленно (поддержка браузера AFAIK одинакова для обоих селекторов).

+0

Да, вот оно, спасибо! Есть ли способ продолжить работу с выбранным элементом? Как 'dl # id dd: nth-of-type (3) li' – user1856596

+0

@ user1856596: Если' li' находится в списке в 'dd', обязательно. – BoltClock

0

Вы также можете сделать это с JQuery:

$("dl#id dd") 

Это даст вам все дд в пределах дл. с индексом, то вы можете получить доступ к п-й элемент Для третьего это будет:

$("dl#id dd").eq(2) 

Вы можете добавить свойство стиля:

$("dl#id dd").eq(2).css("color", "yellow") 

Я надеюсь, что это ответил на ваш вопрос

+1

Вы можете просто использовать '.eq (2)' вместо '[2]', чтобы получить объект jQuery ... – BoltClock

+0

Вы правы. Спасибо. Я обновил код. – MentholBonbon

Смежные вопросы