Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   javascript: выбрать и перемешать (https://javascript.ru/forum/dom-window/52429-javascript-vybrat-i-peremeshat.html)

paradoxoflife 18.12.2014 19:49

javascript: выбрать и перемешать
 
Доброе время суток, уважаемые.

Есть таблица, состоящая из некоторого количества div-ов, определенных одним классом.
Как средствами javascript выбрать эти div-ы одного класса и перемешать между собой в хаотичном порядке?

Заранее благодарю за внимание и ценные советы!

Aetae 18.12.2014 20:31

Выбрать просто:
var divs = document.querySelectotAll('.class');

А вот на счёт перемешать - зависит от структуры.

рони 18.12.2014 20:38

Aetae,
:) если сортировать содержимое
http://javascript.ru/forum/misc/2548...tml#post155941

Aetae 18.12.2014 21:19

рони, всё так просто если эти div'ы в одном контейнере. Если же нет, то всё сложнее.)

рони 18.12.2014 21:23

Aetae,
неа тоже самое -- только создать массив с parentNode

будет что то типа list[j].appendChild( elem_arr[ c[j] ] )

Aetae 18.12.2014 21:32

рони, неа. Дивы то в этих разных контейнерах ещё и в разных позициях могут находиться, а ещё они могут быть по парочке в одном месте.))

рони 18.12.2014 21:44

Aetae,
:write:
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <style type="text/css">
 .bar{
   border: #FF3399 2px solid ;
   padding: 5px;
 }
div {
  display: inline;
}

  </style>
</head>

<body>
<div class="foo">1</div>
<div class="bar"><div class="foo">2</div>
<div class="foo">3</div></div>
<div class="bar"><div class="foo">4</div></div>
<div class="foo">5</div>

<input name="" type="button" value="go" onclick="go()">
<script>
var divs = [].slice.call(document.querySelectorAll('.foo')),
    len = divs.length,
    elem = document.createElement("div");

function go() {
    for (var i = 0; i < len; i++) {
        var rand = Math.floor(Math.random() * len);
        divs[i].parentNode.replaceChild(elem, divs[i]);
        i != rand && divs[rand].parentNode.replaceChild(divs[i], divs[rand]);
        elem.parentNode.replaceChild(divs[rand], elem)
    }
}



</script>
</body>

</html>

paradoxoflife 19.12.2014 10:27

всем еще раз спасибо!, буду разбираться.

**
div-ы определенного класса складывают таблицу, в которой и перемешиваются объекты...


работает!)


Часовой пояс GMT +3, время: 19:31.