Есть ли способ выбрать элемент (ы) по элементам, которые они содержат? - PullRequest
1 голос
/ 09 мая 2011

У меня есть несколько div с, и я хочу выбрать их, если они содержат элемент, например ::

<div><a href="http://example.com">link</a></div>
<div>No link</div>

Я хочу выбрать div со ссылкой в ​​нем, но не без. Возможно ли это без JavaScript?

Кроме того, причина, по которой я хочу, это для таблицы стилей sub reddit , поэтому я не могу настроить фактический HTML, только CSS.

Ответы [ 4 ]

3 голосов
/ 09 мая 2011

Вы пытаетесь применить стили к предку на основе потомка.Это невозможно в CSS.

Самым близким является прямой дочерний селектор.Но это применило бы стили к a в пределах div, а не наоборот.

div > a

Подробнее о CSS Selector Я бы посоветовал поискать другой способ выбора этих элементов или применить ваши стили к a с указанным выше.

1 голос
/ 09 мая 2011

Вы можете использовать селектор: nth-child (N) в зависимости от положения элементов div внутри родительского элемента, каким бы оно ни было.Итак, в приведенном выше примере элемент div, в котором есть элемент a, является первым дочерним элементом, а другой элемент div, в котором нет элемента a, является вторым дочерним элементом.Из вашего кода не ясно, являются ли эти элементы div дочерними по отношению к каким-либо другим элементам или они являются дочерними по отношению к элементу body.В случае, если они являются дочерними элементами элемента body, вы можете сделать это как

div:nth-child(1)

. Это выберет первый div

div:nth-child(2)

Это выберет второй div.

Конечно, вы должны выяснить для себя, какой nth-child имеет какие-либо другие элементы, вложенные в него, и чем использовать эту позицию для значения «N».Если у ваших элементов div ничего нет, вы можете использовать

div:empty
0 голосов
/ 09 мая 2011

Как насчет $('div > a').parent().whateveryouneedtodo()?

0 голосов
/ 09 мая 2011

сначала вы должны назвать ссылку и div 'class' и 'id' так: и CSS будет выглядеть так:

#divname,a.linkname {property:value;}

надеюсь, что это хороший ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...