Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Сгруппировать список (https://javascript.ru/forum/dom-window/81834-sgruppirovat-spisok.html)

awoll_n 03.02.2021 02:47

Сгруппировать список
 
Ребята подскажите как сделать из это:
<div class="images">
              <img class="p--img" src="images/p01.jpg" alt="">
              <img class="p--img" src="images/p02.jpg" alt="">
              <img class="p--img" src="images/p03.jpg" alt="">
              <img class="p--img" src="images/p04.jpg" alt="">
              <img class="p--img" src="images/p05.jpg" alt="">
              <img class="p--img" src="images/p06.jpg" alt="">   
              <img class="p--img" src="images/p07.jpg" alt="">
              <img class="p--img" src="images/p08.jpg" alt="">       
            </div>

Вот это:
<div class="images">
              <div class="group">
                <img class="p--img" src="images/p01.jpg" alt="">
                <img class="p--img" src="images/p02.jpg" alt="">
                <img class="p--img" src="images/p03.jpg" alt="">
                <img class="p--img" src="images/p04.jpg" alt="">   
              </div>   
              <div class="group">
                <img class="p--img" src="images/p05.jpg" alt="">
                <img class="p--img" src="images/p06.jpg" alt="">
                <img class="p--img" src="images/p07.jpg" alt="">
                <img class="p--img" src="images/p05.jpg" alt="">   
              </div>   
            </div>


То есть добавить в группы и иметь возможность указывать сколько картинок должны быть в группах! Спасибо

voraa 03.02.2021 07:46

<style>
.images {
	border: 1px blue solid;
	padding: 10px;
}
.group {
	border: 1px red solid;
	padding: 10px;
	margin: 5px 0;
}
img {
	width: 20px;
	height: 20px;
	margin: 5px;
}
</style>
<body>
<div class="images">
              <img class="p--img" src="images/p01.jpg" alt="">
              <img class="p--img" src="images/p02.jpg" alt="">
              <img class="p--img" src="images/p03.jpg" alt="">
              <img class="p--img" src="images/p04.jpg" alt="">
              <img class="p--img" src="images/p05.jpg" alt="">
              <img class="p--img" src="images/p06.jpg" alt="">  
              <img class="p--img" src="images/p07.jpg" alt="">
              <img class="p--img" src="images/p08.jpg" alt="">      
              <img class="p--img" src="images/p01.jpg" alt="">
              <img class="p--img" src="images/p02.jpg" alt="">
              <img class="p--img" src="images/p03.jpg" alt="">
              <img class="p--img" src="images/p04.jpg" alt="">
              <img class="p--img" src="images/p05.jpg" alt="">
              <img class="p--img" src="images/p05.jpg" alt="">
            </div>
<script>
const group = (dv, n) => {
	let chim;
	while ((chim = dv.querySelectorAll(':scope>.p--img')) && chim.length) {
		const ng = Math.min(chim.length, n);
		const dg = document.createElement('div');
		dg.setAttribute('class', 'group');
		dv.insertBefore(dg, chim[0]);
		for (let i=0; i< ng; i++) dg.append(chim[i])
	}
}

group (document.querySelector('.images'), 3)
</script>
</body>

рони 03.02.2021 08:00

обернуть каждые четыре элемента в див
 
awoll_n,
<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
.group{
    border: 1px solid #0000CD;
    display: flex;
    justify-content: space-around;
}
.p--img{
    height: 100px;
    width: 100px;
    background-color: #FFFF00;
}
    </style>
    <script>
document.addEventListener("DOMContentLoaded", function() {
    const wrapEach = (selector, wrapper, countToWrap, cls) => {
        let container = document.createElement(wrapper);
        container.classList.add(cls);
        document.querySelectorAll(selector).forEach((el, i) => {
            i % countToWrap || (container = container.cloneNode(),
                el.replaceWith(container));
            container.append(el);
        })
    }
    wrapEach('.p--img', 'div', 4, 'group');
});
    </script>
</head>
<body>
<div class="images">
        <img class="p--img" src="images/p01.jpg" alt="">
        <img class="p--img" src="images/p02.jpg" alt="">
        <img class="p--img" src="images/p03.jpg" alt="">
        <img class="p--img" src="images/p04.jpg" alt="">
        <img class="p--img" src="images/p05.jpg" alt="">
        <img class="p--img" src="images/p06.jpg" alt="">
        <img class="p--img" src="images/p07.jpg" alt="">
        <img class="p--img" src="images/p08.jpg" alt="">
</div>
</body>
</html>


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