Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сбалансировать к-во элементов (https://javascript.ru/forum/misc/86091-sbalansirovat-k-vo-ehlementov.html)

Uthvfy62 14.09.2024 15:00

Сбалансировать к-во элементов
 
Есть 2 блока с разным колличеством элементов. Допустим 2 ul с разным колличеством li. Во 2ом больше li чем в первом. Как можно колличество li сделать одинаковым? Во 2ом колличество li меняется. Что если в 1ом 6 то и во втором тоже должно быть 6. Спасибо.

Aetae 14.09.2024 17:14

Если они рядом, то может положить всё в один ul и задать ему css columns - само выравняется?

Uthvfy62 15.09.2024 03:37

оно и так в одном ul. Я не знаю как задать и чему columns. Я понимаю надо получить length к-во элементов а потом лишнее убрать. Видел здесь на форуме такой скрипт for(let i = $('ul li').length; i < $('ul2 li').length;) {$('.nav-list p')[i].hide();} Сначало работало, на другой день открыл windows и перестало работать.

Aetae 15.09.2024 16:54

Я говорил об этом:
<ul style="columns: 2">
  <li>li 1</li>
  <li>li 2</li>
  <li>li 3</li>
  <li>li 4</li>
  <li>li 5</li>
  <li>li 6</li>
  <li>li 7</li>
  <li>li 8</li>
  <li>li 9</li>
  <li>li 10</li>
  <li>li 11</li>
  <li>li 12</li>
</ul>
Т.е. сделать просто один ul и не мучать мозги.

И даже если таки нужно два блока - программно распределение нужно делать на сервере, а не на клиенте.

По твоему коду - он должен работать, если написать правильно:
for(let i = $('ul li').length; i < $('ul2 li').length; i++) {
 $('ul2 li')[i].hide();
}
Откуда там взялся .nav-list p непонятно.

Uthvfy62 18.09.2024 02:44

то я недоглядел, не удалил. columns не подходит. Мне надо не просто сделать два ul в одинаковым колличеством li а подогнать колличество li в первом ul под колличество li во втором. Во втором колличество li меняется, а в первом стабильно. Объясню как оно есть. Есть нав 123456... и скрытые блоки. Нажимаещ на 2 открывается таб2, на 3 таб3 и т.д. Вроде всё как обычно. Только в моём случае колличество табов меняется. Бывает 10, бывает больше. И я не хочу чтоб отображались неактивные в нав. В том коде что я писал что-то не то.

Uthvfy62 18.09.2024 02:53

ещё такой вопрос если можно. Допустим есть два div. В первом есть контент, а второй пустой.
<div>ррррррр</div><div></div> Как можно на js или jquery вычислить этот пустой блок?

voraa 18.09.2024 07:24

elem.normalize();
if (elem.childNodes.length === 0) {/* элемент пустой */}

Aetae 18.09.2024 13:56

Цитата:

В том коде что я писал что-то не то.
Приведи в конце концов код:
1. "вот так у меня сейчас"
2. "вот так я хочу чтоб было"
Если бывает несколько вариантов - сделай несколько примеров. Твои путанные объяснения не помогают.
Цитата:

В первом есть контент, а второй пустой.
Опять же на css:
div:empty
. querySelector\matches с ним тоже работает, само собой.

Uthvfy62 20.09.2024 05:19

вот можете посмотреть. http://totalproduct.pcomplex.ua/agriculture/ Нажмите в аккордионе "Сельское хозяйство" - "Сельскохозяйственная техника и оборудование" - "Общее". Нажимая на 1 или 2 или 3... открывается соответствующая вкладка. Надо чтоб колличество 123 соответствовало числу вкладок. Допустим в категории "Сельское хозяйство" в подкатегориях число вкладок разное. +- 10. Если допустим вкладок 8 то и нав тоже должно быть 8, а не 15.


Часовой пояс GMT +3, время: 23:07.