Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.12.2015, 19:10
Интересующийся
Отправить личное сообщение для subbziro Посмотреть профиль Найти все сообщения от subbziro
 
Регистрация: 02.08.2015
Сообщений: 10

Если в контейнере нечетное количество блоков, добавить последнему class
Есть родительский блок .main_ul (он является ul'ом), в нем находятся li. Нужно чтобы если количество li нечетное, то последнему добавлялся класс .mainlast_li.
Помогите пожалуйста новичку
Ответить с цитированием
  #2 (permalink)  
Старый 11.12.2015, 19:48
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

subbziro,
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .mainlast_li {
            background-color: #1b6d85;
        }
        
        
    </style>
    <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
</head>
<body>

 <ul class="main_ul ">
     <li>1</li>
     <li>2</li>
     <li>3</li>
     <li>4</li>
     <li>5</li>


 </ul>
<script>

    if(!$('.main_ul li').length % 2 == 0){
        $('.main_ul li:last-child').addClass('mainlast_li');
    }


</script>

</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 11.12.2015, 19:56
Кандидат Javascript-наук
Отправить личное сообщение для yazonnile Посмотреть профиль Найти все сообщения от yazonnile
 
Регистрация: 25.05.2012
Сообщений: 133

Это можно сделать стилями

http://jsfiddle.net/rhq1ynsq/
Ответить с цитированием
  #4 (permalink)  
Старый 11.12.2015, 19:56
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Mess4me
if(!$('.main_ul li').length % 2 == 0){
$('.main_ul li').length & 1 ....
Ответить с цитированием
  #5 (permalink)  
Старый 11.12.2015, 19:59
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

yazonnile,
стилями не знаю как ) надо смотреть )
Ответить с цитированием
  #6 (permalink)  
Старый 11.12.2015, 20:05
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

laimas,
а можешь пояснить ) $('.main_ul li').length & 1
допустим $('.main_ul li').length = 5;
тогда 5&1 или 4&1 , а что дальше?
Как тут с четными и нечётными?)
Ответить с цитированием
  #7 (permalink)  
Старый 11.12.2015, 20:16
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

$('.main_ul > li:nth-of-type(2n+1):last-child').addClass('mainlast_li');


Но лучше прям в CSS селектором прописать нужный стиль, тогда никакой класс добавлять не нужно будет.

Последний раз редактировалось ruslan_mart, 11.12.2015 в 20:41.
Ответить с цитированием
  #8 (permalink)  
Старый 11.12.2015, 20:17
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от laimas
Как тут с четными и нечётными?
Проверить кратность числа числу N > 2, это еще можно деление по модулю использовать, а вот четные числа в младшем разряде содержат 0, а нечетные 1. Поэтому эффективнее и проще не делить по модулю 2, а проверять младший разряд числа, ибо эта операция выполняется гораздо проще.

Это как с делением/умножением, если условия позволяют, то выгоднее не делить число а сдвинуть его на N разрядов вправо, а при умножении влево.
Ответить с цитированием
  #9 (permalink)  
Старый 11.12.2015, 20:39
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

laimas,
спасибо ,за объяснение , но я всё равно не понял
А ссылку можно получить?
Ответить с цитированием
  #10 (permalink)  
Старый 11.12.2015, 20:45
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

А чего тут не понятного:

0 = 0000
1 = 0001
2 = 0010
3 = 0011
4 = 0100
5 = 0101
....

Рассказывать, что будет при логической операции AND чисел и 1, или не надо?

Ссылку на что?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск