Получить значение из первого элемента отсортированного списка - PullRequest
0 голосов
/ 01 марта 2019

Я отсортировал список, и после сортировки мне нужно получить значения первого элемента в этом списке.Я пробовал это до сих пор, но я получаю только ошибку:

let albumList = "";

albumList = $(".album:visible");
albumList.sort(function (a, b) { return $(a).data("totalprice") - $(b).data("totalprice") });

console.log(albumList[0].data("totalprice"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div class="album" data-totalprice="170.00"></div>
<div class="album" data-totalprice="200.00"></div>
<div class="album" data-totalprice="150.00"></div>
<div class="album" data-totalprice="100.00"></div>

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Простой и чистый подход JavaScript.querySelectorAll возвращает объект NodeList, поэтому сначала нам нужно создать массив, а затем отсортировать элементы по их атрибуту data.

const albumList = Array.from(document.querySelectorAll('.album')).sort((a, b) => {
    return a.dataset.totalprice - b.dataset.totalprice;
})

console.log(albumList[0].dataset.totalprice)
<div class="album" data-totalprice="170.00"></div>
<div class="album" data-totalprice="200.00"></div>
<div class="album" data-totalprice="150.00"></div>
<div class="album" data-totalprice="100.00"></div>
0 голосов
/ 01 марта 2019

Поскольку .data() является функцией jquery, сделайте albumList[0] объектом jquery для ее использования

$(albumList[0]).

let albumList = "";
albumList = $(".album:visible");
albumList.sort(function(a, b) {
  return $(a).data("totalprice") - $(b).data("totalprice")
});
console.log($(albumList[0]).data("totalprice"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div class="album" data-totalprice="170.00"></div>
<div class="album" data-totalprice="200.00"></div>
<div class="album" data-totalprice="150.00"></div>
<div class="album" data-totalprice="100.00"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...