Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   сортировка div jquery (https://javascript.ru/forum/misc/56564-sortirovka-div-jquery.html)

mortido 23.06.2015 00:03

сортировка div jquery
 
всем привет. есть большое количество div'ов на странице, код которых в общем выглядит вот так: <div card_class="9" card-count="2" card_type="Заклинание" card_rare="3" card_cost="3" card_dust="100" class="collapsed_card" id="card_id_111"></div> . Подскажите как с помощью jquery можно сортировать эти div'ы от большего к меньшему и наоборот по вот этому атрибуту div'a: card_cost. спасибо

рони 23.06.2015 00:19

mortido,
создать массив элементов и отсортировать, как сортируют массивы. вы начните.

mortido 23.06.2015 10:55

а как можно массив наполнить всеми элементами с определенным классом?

tsigel 23.06.2015 11:41

mortido,
http://lmgtfy.com/?q=jquery+to+array

рони 23.06.2015 12:33

mortido,
практически готовый код, для варианта если все блоки лежат в одном контейнере http://javascript.ru/forum/showthrea...555#post259543

mortido 23.06.2015 15:56

а как отсортировать по значению атрибута? это не хочет работать:
$(window).load(function () {
    var c = jQuery.makeArray($(".deck_container div"));
    c.sort(function (a, b) {
        a = $(a).attr("card_cost");
        b = $(b).attr("card_cost");
        return a < b ? -1 : a > b ? 1 : 0
    });
    $(c).appendTo(".deck_container")
});

рони 23.06.2015 16:59

mortido,
должно работать

рони 23.06.2015 17:02

mortido,
чуть короче но тоже самое.
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
  <script>
   $(window).load(function () {
    var c = jQuery.makeArray($(".deck_container div"));
    c.sort(function (a, b) {
        a = $(a).attr("card_cost");
        b = $(b).attr("card_cost");
        return b - a
    });
    $(c).appendTo(".deck_container")
});
</script>
</head>
<body>
   <div class='deck_container'>
   <div card_cost="20">20</div>
   <div card_cost="8">8</div>
   <div card_cost="1">1</div>
   <div card_cost="5">5</div>
   <div card_cost="17">17</div>
  </div>
</body>
</html>

mortido 23.06.2015 18:05

вроде бы работает, но у меня внутри div'a есть еще другие теги. вот так выглядит один div:
<div card_class="9" card-count="1" card_type="Существо" card_rare="2" card_cost="2" card_dust="40" class="collapsed_card" id="card_id_144"><span class="card_img_list" style="background-image: url(/wp-content/uploads/cards/чтото.png)"></span><div class="card_shadow"></div><div class="card_cost_list">2</div><span class="card_title_list quality2">чтото</span><span class="card_count">1</span></div>

и в итоге все как то вперемешку получается

mortido 23.06.2015 18:12

все разобрался, забыл что у меня внутри помимо самого дива еще и другие есть)


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