簡體   English   中英

在其他div中具有相同class的多個div的相反順序

[英]reverse order of multiple divs with same class inside other divs

任務在這里http://jsfiddle.net/1jx6wp03/

<div class="c-container">
  <div>Container 6
    <div>my div 6</div>
    <div class="item2" style="background-color: red; color:#ffffff">3</div>
  </div>
  <br>
  <div>Container 5
    <div>my div 5</div>
    <div class="item1" style="background-color: lightgreen;">1</div>
  </div>
  <br>
  <div>Container 4
    <div>my div 4</div>
    <div class="item2" style="background-color: red; color:#ffffff">2</div>
  </div>
  <br>
  <div>Container 3
    <div>my div 3</div>
    <div class="item2" style="background-color: red; color:#ffffff">1</div>
  </div>
  <br>
  <div>Container 2
    <div>my div 2</div>
    <div class="item1" style="background-color: lightgreen;">2</div>
  </div>
  <br>
  <div>Container 1
    <div>my div 1</div>
    <div class="item1" style="background-color: lightgreen;">1</div>
  </div>
</div>

加載相同的 class div 需要反轉結果

<div class="c-container">
  <div>Container 6
    <div>my div 6</div>
    <div class="item2" style="background-color: red; color:#ffffff">1</div>
  </div>
  <br>
  <div>Container 5
    <div>my div 5</div>
    <div class="item1" style="background-color: lightgreen;">1</div>
  </div>
  <br>
  <div>Container 4
    <div>my div 4</div>
    <div class="item2" style="background-color: red; color:#ffffff">2</div>
  </div>
  <br>
  <div>Container 3
    <div>my div 3</div>
    <div class="item2" style="background-color: red; color:#ffffff">3</div>
  </div>
  <br>
  <div>Container 2
    <div>my div 2</div>
    <div class="item1" style="background-color: lightgreen;">2</div>
  </div>
  <br>
  <div>Container 1
    <div>my div 1</div>
    <div class="item1" style="background-color: lightgreen;">3</div>
  </div>
</div>

我試過這個效果很好,但它似乎有點多余。 順便說一句,我可以訪問 HTML 並且我有超過 2 個類(item3、item4 等),並且類上的功能必須同時工作。

 const children1 = document.querySelectorAll('.c-container.item1'); const reverse1 = [...children1].reverse(); children1.forEach((item, i) => item.outerHTML = reverse1[i].outerHTML); const children2 = document.querySelectorAll('.c-container.item2'); const reverse2 = [...children2].reverse(); children2.forEach((item, i) => item.outerHTML = reverse2[i].outerHTML);
 <div class="c-container"> <div>Container 6 <div>my div 6</div> <div class="item2" style="background-color: red; color:#ffffff">3</div> </div> <br> <div>Container 5 <div>my div 5</div> <div class="item1" style="background-color: lightgreen;">1</div> </div> <br> <div>Container 4 <div>my div 4</div> <div class="item2" style="background-color: red; color:#ffffff">2</div> </div> <br> <div>Container 3 <div>my div 3</div> <div class="item2" style="background-color: red; color:#ffffff">1</div> </div> <br> <div>Container 2 <div>my div 2</div> <div class="item1" style="background-color: lightgreen;">2</div> </div> <br> <div>Container 1 <div>my div 1</div> <div class="item1" style="background-color: lightgreen;">1</div> </div> </div>

首先你制作像 let x = [1,2,3,4,5,6] 這樣的數組,然后給每個 div 反向索引值,然后將該值放入該數組中,然后將該值放入 for 循環中,並一個接一個地作為每個循環允許它根據 for 循環的 i+1 條件可見。您可以成功運行反轉您的 div。

將其放入 function 並運行兩次。 您只需要確保使用正確的選擇器。

 const reverser = selector => { const arr = document.querySelectorAll(selector); const rev = [...arr].reverse(); arr.forEach((e, i) => e.outerHTML = rev[i].outerHTML); }
 [class^=item] { padding: 0.3em; }.c-container>div, button { margin-top: 1rem; }
 <button onclick="reverser('.item1')">Reverse Group 1</button> <button onclick="reverser('.item2')">Reverse Group 2</button> <div class="c-container"> <div>Container 8 <div>my div 8</div> <div class="item2" style="background: forestgreen;">Swap-group 2, item 3</div> </div> <div>Container 7 <div>my div 7</div> <div class="item1" style="background: mediumvioletred;">Swap-group 1, item 3</div> </div> <div>Container 6 <div>my div 6</div> <div class="item2" style="background: limegreen;">Swap-group 2, item 2</div> </div> <div>Container 5 <div>my div 5</div> <div class="item2" style="background: mediumseagreen;">Swap-group 2, item 1</div> </div> <div>Container 4 <div>my div 4</div> <div class="item1" style="background: deeppink;">Swap-group 1, item 2</div> </div> <div>Container 3 <div>my div 3</div> <div class="item1" style="background: hotpink;">Swap-group 1, item 1</div> </div> <div>Container 2 <div>my div 2</div> <div class="item2" style="background: lightgreen;">Swap-group 2, item 0</div> </div> <div>Container 1 <div>my div 1</div> <div class="item1" style="background: lightpink;">Swap-group 1, item 0</div> </div> </div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM