Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.09.2021, 14:41
Кандидат Javascript-наук
Отправить личное сообщение для firsmember Посмотреть профиль Найти все сообщения от firsmember
 
Регистрация: 08.11.2019
Сообщений: 113

Обернуть в div
Добрейшего дня Боги JS..
Нужна ваша помощь...

Имею: несколько блоков с разными id (может быть любым) и этих блоков может быть любое количество, в них есть блоки с классом .price-section__list (Этих блоков может быть любое количество) в них есть свои блоки с информаией.

<div id="blblblb1">
<div class="price-section__list">
  <div class="price-item">1</div>
</div>
<div class="price-section__list">
  <div class="price-item">2</div>
</div>
<div class="price-section__list">
  <div class="price-item">3</div>
</div>
<div class="price-section__list">
  <div class="price-item">4</div>
</div>
<div class="price-section__list">
  <div class="price-item">5</div>
</div>
<div class="price-section__list">
  <div class="price-item">6</div>
</div>
<div class="price-section__list">
  <div class="price-item">7</div>
</div>
</div>
<div id="blblblb2">
<div class="price-section__list">
  <div class="price-item">1</div>
</div>
<div class="price-section__list">
  <div class="price-item">2</div>
</div>
<div class="price-section__list">
  <div class="price-item">3</div>
</div>
<div class="price-section__list">
  <div class="price-item">4</div>
</div>
<div class="price-section__list">
  <div class="price-item">5</div>
</div>
<div class="price-section__list">
  <div class="price-item">6</div>
</div>
</div>


Нужно что бы если в блоках с разными id (может быть любым) и этих блоков может быть любое количество, блоков с классом .price-section__list (Этих блоков может быть любое количество) больше 5 то эти 5 отображались бы, как есть, без изменений, а все последующие были обернуты в блок с классом .price-hidden-items вот так:


<div id="blblblb1">
<div class="price-section__list">
  <div class="price-item">1</div>
</div>
<div class="price-section__list">
  <div class="price-item">2</div>
</div>
<div class="price-section__list">
  <div class="price-item">3</div>
</div>
<div class="price-section__list">
  <div class="price-item">4</div>
</div>
<div class="price-section__list">
  <div class="price-item">5</div>
</div>
<div class="price-hidden-items">
<div class="price-section__list">
  <div class="price-item">6</div>
</div>
<div class="price-section__list">
  <div class="price-item">7</div>
</div>
</div>
</div>
<div id="blblblb2">
<div class="price-section__list">
  <div class="price-item">1</div>
</div>
<div class="price-section__list">
  <div class="price-item">2</div>
</div>
<div class="price-section__list">
  <div class="price-item">3</div>
</div>
<div class="price-section__list">
  <div class="price-item">4</div>
</div>
<div class="price-section__list">
  <div class="price-item">5</div>
</div>
<div class="price-hidden-items">
<div class="price-section__list">
  <div class="price-item">6</div>
</div>
</div>
</div>

<div id="blblblb3">
<div class="price-section__list">
  <div class="price-item">1</div>
</div>
<div class="price-section__list">
  <div class="price-item">2</div>
</div>
<div class="price-section__list">
  <div class="price-item">3</div>
</div>
<div class="price-section__list">
  <div class="price-item">4</div>
</div>
</div>

<div id="blblblb4">
<div class="price-section__list">
  <div class="price-item">1</div>
</div>
<div class="price-section__list">
  <div class="price-item">2</div>
</div>
<div class="price-section__list">
  <div class="price-item">3</div>
</div>
<div class="price-section__list">
  <div class="price-item">4</div>
</div>
<div class="price-section__list">
  <div class="price-item">5</div>
</div>
<div class="price-hidden-items">
<div class="price-section__list">
  <div class="price-item">6</div>
</div>
<div class="price-section__list">
  <div class="price-item">7</div>
</div>
<div class="price-section__list">
  <div class="price-item">8</div>
</div>
<div class="price-section__list">
  <div class="price-item">9</div>
</div>
</div>
</div>


Подскажите пожалуйста решение ...
Ответить с цитированием
  #2 (permalink)  
Старый 03.09.2021, 15:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

firsmember,
а поискать по форуму, есть с десяток примеров ...
https://javascript.ru/forum/events/6...tml#post448151
Ответить с цитированием
  #3 (permalink)  
Старый 03.09.2021, 19:13
Кандидат Javascript-наук
Отправить личное сообщение для firsmember Посмотреть профиль Найти все сообщения от firsmember
 
Регистрация: 08.11.2019
Сообщений: 113

Там много лишнего, мне просто оборачивать нужно при количестве свыше 5
Ответить с цитированием
  #4 (permalink)  
Старый 03.09.2021, 20:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

обернуть после 5
firsmember,

<!DOCTYPE html>
<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
        div>.price-hidden-items {
            border: 1px red solid;
        }
    </style>
    <script>
        document.addEventListener("DOMContentLoaded", function() {
            let wrap = `<div class="price-hidden-items"></div>`;
            document.querySelectorAll("div > :first-child.price-section__list")
                .forEach(({
                    parentNode
                }) => {
                    let {
                        children
                    } = parentNode, {
                        length
                    } = children;
                    if (length > 5) {
                        children = [...children].slice(5);
                        parentNode.insertAdjacentHTML("beforeend", wrap);
                        parentNode.querySelector(".price-hidden-items").append(...children);
                    }
                })
        });
    </script>
</head>

<body>
    <div id="blblblb1">
        <div class="price-section__list">
            <div class="price-item">1</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">2</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">3</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">4</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">5</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">6</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">7</div>
        </div>
    </div>
    <div id="blblblb2">
        <div class="price-section__list">
            <div class="price-item">1</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">2</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">3</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">4</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">5</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">6</div>
        </div>
    </div>
</body>

</html>
Ответить с цитированием
  #5 (permalink)  
Старый 04.09.2021, 10:43
Кандидат Javascript-наук
Отправить личное сообщение для firsmember Посмотреть профиль Найти все сообщения от firsmember
 
Регистрация: 08.11.2019
Сообщений: 113

Прошу прощения, а можно еще одна просьба?
Можете тоже самое только на jQuery ?
Ответить с цитированием
  #6 (permalink)  
Старый 04.09.2021, 11:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Сообщение от firsmember
Можете тоже самое только на jQuery ?
надо поискать на форуме
https://javascript.ru/forum/jquery/3...na-jquery.html

https://javascript.ru/forum/showthre...472#post525428
Ответить с цитированием
  #7 (permalink)  
Старый 04.09.2021, 15:25
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Сообщение от firsmember
Можете тоже самое только на jQuery ?
А зачем, если и так работает?
Ответить с цитированием
  #8 (permalink)  
Старый 04.09.2021, 15:48
Кандидат Javascript-наук
Отправить личное сообщение для firsmember Посмотреть профиль Найти все сообщения от firsmember
 
Регистрация: 08.11.2019
Сообщений: 113

jQuery(".price-section__list").each(function(){
    var li = $(".price-item:gt(4)",this);
    if (li.size()){
    $('<div class="btn-center"><div class="btn btn--white js-price-more">Смотреть еще</div></div>').appendTo($(this))
    li.wrapAll("<div class='price-hidden-items'></div>");
    }

});


Написал вот так и не работает, что не так?
Ответить с цитированием
  #9 (permalink)  
Старый 04.09.2021, 18:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Сообщение от firsmember
тоже самое только на jQuery ?

<!DOCTYPE html>
<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
        div>.price-hidden-items {
            border: 1px red solid;
        }
    </style>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script>
        $(function() {
            $("div > .price-section__list:nth-child(6)").each((_, e) => {
                $(e).nextAll().add(e).wrapAll("<div class='price-hidden-items'></div>")
            })
        });
    </script>
</head>

<body>
    <div id="blblblb1">
        <div class="price-section__list">
            <div class="price-item">1</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">2</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">3</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">4</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">5</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">6</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">7</div>
        </div>
    </div>
    <div id="blblblb2">
        <div class="price-section__list">
            <div class="price-item">1</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">2</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">3</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">4</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">5</div>
        </div>
        <div class="price-section__list">
            <div class="price-item">6</div>
        </div>
    </div>
</body>

</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обернуть каждые 5 div adax jQuery 12 15.02.2017 09:03
Как обернуть каждый тег в несколько DIV содержащих по 1 атрибуту от этих самых тегов? Zaxap Общие вопросы Javascript 10 08.11.2016 11:56
Обернуть каждый символ в DIV Teamur Events/DOM/Window 7 17.02.2016 18:54
Как обернуть в div li? Aleksanderj Общие вопросы Javascript 5 08.05.2015 11:56
Обернуть блок в div с помощью expression'а в css SilentImp Internet Explorer 3 31.12.2010 01:53