Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Any way to shuffle content in multiple div elements

I'm relatively new to Javascript and was wondering if there's a quick way to shuffle content that is contained in multiple <div> tags. For example

<div id='d1'>
  <span>alpha</span>
  <img src='alpha.jpg'>
</div>
<div id='d2'>
  <span>beta</span>
  <img src='beta.jpg'>
</div>
<div id='d3'>
  <span>gamma</span>
  <img src='gamma.jpg'>
</div>

<button onclick='shuffle_content();'>Shuffle</button>

After clicking on the button, I'd like the content in d1, d2, d3 to change places (for example maybe d3 would be first, then d1, then d2).

A quick way to kind of move things around is to copy the first div element (d1), then put it at the very end (after d3), and then delete the original d1. But that doesn't really randomize things. It just makes things go in the cycle (which might be ok).

Any suggestions would be appreciated. Thanks.

like image 235
Chris Avatar asked Nov 24 '08 19:11

Chris


People also ask

How to shuffle ArrayList elements in Java?

Shuffling means changing the positions of ArrayList elements randomly. After shuffling, they will be in different order. Following is the example of Shuffling ArrayList elements. In this method we will be going to shuffle ArrayList element using Random class to generate random index. And java collections.swap () method to swap ArrayList elements.

Why should I subscribe to the shuffle editor?

By subscribing to the editor, you get access to all of them. The UI libraries are available in four frameworks - Tailwind CSS, Bootstrap, Bulma, and Material-UI (React). We divided them into components, under which there is clear code. In Shuffle Editor, you can build whole templates from them, editing styles, texts, images, and other features.

What does the <Div> HTML element represent?

The <div> HTML element is the generic container for flow content. It has no effect on the content or layout until styled in some way using CSS (e.g. styling is directly applied to it, or some kind of layout model like Flexbox is applied to its parent element). As a "pure" container, the <div> element does not inherently represent anything.

How many ready-made UI components are available in shuffle editor?

Browse 6246 ready-made UI components available in Shuffle Editor. Choose from 6246 of ready-made UI components available in Shuffle Editor. They are divided into 20+ UI libraries created by experienced designers. Each of them presents a unique style that will allow you to build a fantastic website.


1 Answers

are you ok with using a javascript library like jQuery? here's a quick jQuery example to accomplish what you're after. the only modification to your HTML is the addition of a container element as suggested:

<div id="shuffle">
    <div id='d1'>...</div>
    <div id='d2'>...</div>
    <div id='d3'>...</div>
</div>

and javascript:

function shuffle(e) {               // pass the divs to the function
    var replace = $('<div>');
    var size = e.size();

    while (size >= 1) {
       var rand = Math.floor(Math.random() * size);
       var temp = e.get(rand);      // grab a random div from our set
       replace.append(temp);        // add the selected div to our new set
       e = e.not(temp); // remove our selected div from the main set
       size--;
    }
    $('#shuffle').html(replace.html() );     // update our container div with the
                                             // new, randomized divs
}

shuffle( $('#shuffle div') );
like image 51
Owen Avatar answered Sep 24 '22 17:09

Owen