Отследить последний модуль в позиции

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 6 декабря 2014 в 09:22
Уважаемые программисты, не хотите ли поломать голову над интересной задачкой? joke

Суть вопроса: в позиции sidebar выводятся один за другим модули. Соответственно, есть модуль, который выводится последним, в самом низу. Вопрос: как его отследить, и присвоить ему, допустим, определенный класс, например, .last? Разговор идет, естественно, о первой ветке Instant.

Пока на ум приходит только закрыть все модули в <li>...</li> и каким-нибудь скриптом ловить :last-child
Но это лишняя морока, и вмешательство в привычную всем структуру шаблонов… Хотелось бы оставить div'ы
#2 6 декабря 2014 в 09:49
  1. .sibebar div.module:last-child { background: red; }
#3 6 декабря 2014 в 09:51
r2, благодарю за быстрый ответ

я в точности так и пробовал, не получается, а вот если вместо дивов использовать список ul, то работает

P.S. Может, средствами php как-то можно "выловить" его прямо в template.php? Я в этом не силён, к сожалению…
#4 6 декабря 2014 в 10:55
Ну раз "в точности так" не получается. то сделайте вот так —
  1. #sidebar>div:last-child{background:red}
#5 6 декабря 2014 в 11:21
last еще в jquery есть. Можно в ту сторону посмотреть…
#6 6 декабря 2014 в 13:05
Pasha, ну не совсем в точности)) все-таки, классы и айди у меня другие))) но ваш совет помог — все дело в ">" оказалось. Спасибо.

Однако, проблема осталась, так как мне требуется не присвоить этому диву какие-то стили, а присвоить ему определенный класс, чтобы потом этот класс использовать в jquery. То есть
  1.  
  2. <div class="module last">
  3.  
Причем этот класс будет "пустой", он лишь как маркер, который потом будет использоваться скриптом.

Я вижу только вариант решения через php, брать как-то из cms_modules номер позиции модуля, и… А дальше все туманно))
#7 6 декабря 2014 в 13:26

Причем этот класс будет "пустой", он лишь как маркер, который потом будет использоваться скриптом.

Вячеслав Леонов
тем более
yandex.ru/yandsearch?clid=9582&text=last%20%D0%B2%20jquery
первый результат
api.jquery.com/last/
#8 6 декабря 2014 в 13:59
У jQuery принцип отбора элементов практически такой же как и в css. То есть можно выбрать так:
  1.  
  2. $('#sidebar>div:last-child').addClass('my_class_name');
  3.  
Или же можно выбрать элемент при помощи фильтра как подсказал Евгениий:
  1.  
  2. $('#sidebar>div').last().addClass('my_class_name');
  3.  
Или… еще пять способов. Используйте то, что считаете удобным, суть одинакова.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.