vendredi 10 novembre 2017

Randomize li items and freeze multiple

I need to randomize a list of 5-n li items and set for 1-5 items a specific place, for example, I have

  1. a
  2. b
  3. c
  4. d
  5. e
  6. f

And I want to randomize the last 4 and put on li[0] letter D and on li[2] letter F Results:

  1. d
  2. f
  3. c
  4. b
  5. a
  6. e

Here is my code. Where I'm wrong? Thanks!

    var ul = document.querySelector('ul');
    for (var i = ul.children.length; i >= 0; i--) {

    if(ul.children.innerHTML == "XXX") {
        ul.appendChild(ul.children[0]);
    }
    if(ul.children.innerHTML == "XXXX") {
        ul.appendChild(ul.children[1]);
    }
    if(ul.children.innerText == "XX") {
        ul.appendChild(ul.children[2]);
    } else {
        ul.appendChild(ul.children[generateRandom(i) | 0]);
    }
}


function generateRandom(i) {
    var num = Math.random() * i | 0;
    return (num === 0 || num === 1 || num === 2) ? generateRandom(i) : num;
}




Aucun commentaire:

Enregistrer un commentaire