Рандомизировать ячейки таблицы - PullRequest
4 голосов
/ 04 марта 2011

Я знаю, что это звучит немного странно, но есть ли способ рандомизировать содержимое таблицы? именно клетки. Цель этого - у меня есть таблица, сгенерированная из нескольких XML, и каждый XML состоит минимум из 5 элементов. В основной таблице я могу только заказать их, как они есть, но мне нужно рандомизировать элементы.

Например - jsfiddle.net/tiitremmel/qcSNz/1/

и результат этой таблицы может выглядеть рандомизированным td's

Ответы [ 2 ]

2 голосов
/ 04 марта 2011
   shuffle($("table"));


    function shuffle(tbl) {
        var arr = tbl.find("td");
        for(
          var j, x, i = arr.length; i;
          j = parseInt(Math.random() * i),
          x = arr[--i], arr[i] = arr[j], arr[j] = x
        );

        var tmp;
        var rows = tbl.find("tr").length

        var cols = tbl.find("tr:first td").length

        for (i = 0; i < rows; i++){
            tmp = tbl.find("tr").eq(i);
            tmp.html()
            for (j = 0; j < cols; j++)
                tmp.append(arr[i*cols+j]);

        }       
  }

Определенно, это не лучший код, это только подход.Но это работает.В вашем случае вам нужно использовать

shuffle($("table tbody"));
1 голос
/ 04 марта 2011

Возможно, плагин shuffle поможет вам. Вот оригинальный пост.

...