Voir le flux RSS

danielhagnoul

Emballer (wrap) un élément du DOM dans un autre

Noter ce billet
par , 21/09/2018 à 19h08 (729 Affichages)
La méthode wrap existe en jQuery mais pas en Vanilla JS, je l'ai ajouté à mon fichier dvjhUtilities-1.8.4.js

Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const kWrap = ({
        query = kRequiredParamVerbose({
            param: "query",
            type: "selector",
            info: "un sélecteur existant dans le DOM"
        }),
        tag = kRequiredParamVerbose({
            param: "tag",
            type: "tag",
            info: "un tag qui sera ajouté au DOM et qui emballera le sélecteur query"
        }),
        classe = 'maClasse'
    } = {}) => {
        document.querySelectorAll(query).forEach(elem => {
            const newElem = document.createElement(tag);
            elem.parentElement.insertBefore(newElem, elem);
            newElem.appendChild(elem);
 
            if (classe != 'maClasse') {
                newElem.classList.add(classe);
            }
        });
    };

Exemples

Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<div>Block 1</div>
<div class="wrap_me">Block 2</div>
<div>Block 3</div>

Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
.sectionColor {
  background-color: burlywood;
}
 
.changeColor {
  background-color: beige
  color: blue;
}


Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{ // emballer chaque division dans une section
    kWrap({
        query: 'div',
        tag: 'section',
        classe: 'sectionColor'
    });
}
 
{ // emballer l'élément du DOM ayant la classe 'wrap_me' dans une division
    kWrap({
        query: '.wrap_me',
        tag: 'div',
        classe: 'changeColor'
    });
}

EDIT 2018-10-23

Un ID devant être unique dans la page web, il est impossible de donner un ID à chaque élément wrap !

Licence Creative Commons Attribution 2.0 Belgique

Envoyer le billet « Emballer (wrap) un élément du DOM dans un autre » dans le blog Viadeo Envoyer le billet « Emballer (wrap) un élément du DOM dans un autre » dans le blog Twitter Envoyer le billet « Emballer (wrap) un élément du DOM dans un autre » dans le blog Google Envoyer le billet « Emballer (wrap) un élément du DOM dans un autre » dans le blog Facebook Envoyer le billet « Emballer (wrap) un élément du DOM dans un autre » dans le blog Digg Envoyer le billet « Emballer (wrap) un élément du DOM dans un autre » dans le blog Delicious Envoyer le billet « Emballer (wrap) un élément du DOM dans un autre » dans le blog MySpace Envoyer le billet « Emballer (wrap) un élément du DOM dans un autre » dans le blog Yahoo

Mis à jour 22/03/2019 à 21h28 par danielhagnoul

Tags: englober, wrap
Catégories
Javascript , Développement Web , ES2015

Commentaires