Probleme selection ekement js

Résolu
bonjour j'essai de selectionner et de changer de place mes element mais je n'y arrive pas

<body>

<header class="site-header">
....
</header>

<main class="site-content">
<div class="content-wrapper">
<article class="product-item product-item-featured">
<figure class="product-image">
<img src="..\assets\img\photo-1442544213729-6a15f1611937.jpg" alt="Kebumen">
</figure>
<h1 class="product-title text-ellipsis">Kebumen, au coeur de l'Indonésie</h1>
<p class="product-category">Indonésie</p>
</article>
<article class="product-item">
<figure class="product-image">
<img src="..\assets\img\photo-1501594907352-04cda38ebc29.jpg" alt="Baie de San francisco">
</figure>
<h1 class="product-title">La baie de San Francisco</h1>
<p class="product-description">Découvrez son pont rouge flamboyant, ses tramways, une baie étincelante
et des rues bordées d'élégantes maisons victoriennes.</p>
<p class="product-category">Amérique du Nord</p>
</article>


const item1 = document.querySelector (".product-item");
const item2 = document.querySelector (".product-item");

document.body.insertBefore (item1, item2);

5 réponses

  1. Modérateur
    Bonjour

    Tu essaies d'insérer l'élément devant lui-même ??
    Du moins, c'est ce que ton code essaie de faire...
    1. Je voudrais qu'il déplace les éléments qui se nomme product-item mais je suis novice en js et j'ai pas beaucoup d'idées j'ai regardé la doc des tutos mais rien ne m'est venu comme idée
    2. Modérateur
      @lwdu76Tu veux déplacer tes articles où ça ?
  2. Comment je peux les faire bouger avec des addListenerEvent (move x
    ) ?
    1. Modérateur
      addListenerEvent sert à attacher un événement sur un élément de ta page comme par exemple la détection d'un clic dessus.
      Move,,, n'est pas un événement que l'on peut attacher...

      Il va vraiment falloir que tu sois beaucoup plus précis dans tes explications concernant ce que tu veux réaliser...
    2. @jordane45je dois changer de place (alterner) les articles qui sont stockées dans des classes product-item comme l'article kebumen avec san Francisco
    3. Modérateur
      @lwdu76Les alterner... C'est à dire ?
      Tous tes produits sont sous la forme
      <article class="product-item product-item-featured">

      Je ne sais pas si c'est que je ne suis pas encore bien réveillée... Mais ce n'est toujours pas clair...
    4. @jordane45j'ai cette consigne "Ecrivez une fonction dont le rôle est de réordonner de façon aléatoire les différents voyages présents sur la page en respectant la mise en page. Elle doit se jouer lorsque le DOM est complètement chargé."
    5. @jordane45j'ai' une seule balise de ce style <article class="product-item product-item-featured"> et le reste est de la forme <article class="product-item>
  3. Modérateur

    il m'affiche bien tous mes items

    Oui, car tu as bien plusieurs articles ....

    Donc, maintenant que tu les as dans ta variables .. i lfaut boucler dessus pour les traiter...
    et appliquer un "random" sur ta liste pour les mettre dans un ordre aléatoire..

    https://www.google.com/search?q=javascript+Randomizing+the+display+order+of+content
    1. Je fais une boucle for ?
    2. Modérateur
      @lwdu76tu fais une boucle comme tu veux...
      for
      forEach
      while ..

      Après.. si tu regardes dans le lien que je t'ai donné .. tu trouveras des exemples...
    3. @jordane45
      const element = document.querySelectorAll("article.product-item"); 
      
      Function bouge (){
      
       for (element= 0; element < 7; element++) {
      
      element++;
      
      console.log(element);
      
       }
      Return bouge(); 
      
      console.log (bouge());
      
      var random = Math.floor (Math.random() * element.length);
      element.hide().eq(random).show();
      
      /*version 2*/
      
      var random = Math.floor (Math.random() * $('.product-item').length);
      $('.product-item').hide().eq(random).show();
      }
      


      EDIT : Correction des balises de CODE
  4. Modérateur
    déjà, pourquoi mélanger du jquery et du "pure" js ?
    Ensuite, là tu ne déplaces rien.. tu affiches/masques seulement... toujours au même endroit...
    En plus, tu n'as pas mis ton code dans la boucle ... ni même dans ta fonction... donc.. en gros.. ça ne sert à rien..

    Tiens.. voila un exemple ( que tu aurais pu trouver en regardant les liens qui se trouvent dans celui que je t'ai donné... )
    https://codepen.io/dimayakovlev/pen/VmxOYM
    1. D'accord en reprenant ce code et en l'adaptant ça devrait fonctionner
      Du coup dans le queryselect à l'extérieur de la fonction je met mon queryselect