Ответы пользователя по тегу JavaScript
  • Перемешивание листа в jquery?

    woid
    @woid
    Самый простой вариант, на мой взгляд.
    
    <html>
    <head>
    <script src="http://code.jquery.com/jquery.min.js"></script>
    <script>
        $(document).ready(function(){
            $('#button').click(function(){
                var randomize = function(arr){
                    var length = arr.length - 1;
                    for (var i = 0; i <= length; i++){
                        var rnd1 = Math.round(Math.random()*length),
                              rnd2 = 0;
                        do{
                            rnd2 = Math.round(Math.random()*length);
                        } while (rnd1 == rnd2);
                        var tmp = arr[rnd1];
                        arr[rnd1] = arr[rnd2];
                        arr[rnd2] = tmp;
                }
            }
            var items = [];
            //заполняем массив содержимым списка
            $('ul li').each(function(){
                items.push($(this).html());
            });
            //перемешиваем
            randomize(items);
            //обновляем список
            var length = items.length;
            for (var i = 0; i < length; i++){
                $($('ul li')[i]).html(items[i]); //возможно, это можно сделать как-то иначе
            }
        });
    });
    </script>
    </head>
    <body>
    <ul>
    <li id="1">lorum</li>
    <li id="2">ipsum</li>
    <li id="3">beta</li>
    </ul>
    
    <input type="button" id="button" value="Click me"/>
    </body>
    </html>
    
    Ответ написан
    Комментировать