Добрый день, нашел сортировку, которая подходит под мои нужды, но не могу правильно вставить в свой код,
вывожу кнопку, задаю ей id и data
<?$sql = mysql_query("SELECT DISTINCT(mark)FROM tr");if ($sql == true) {echo "<h4>Сортировка по марке</h4>";while ($row = mysql_fetch_array($sql)) {echo "<p><button id='filter' class='sort1' data-sort='$row[mark]'>$row[mark]</button>";}}?>
к чему должна сортировка применятся, тоже задаю data
echo "<div class='product__element' data-mark='$row[mark]'><table class='table_dark'><tr><td>";
сам код
let item = $('.product__element'),
red = $('.mark');
$('#filter').on('click', () => {
item.addClass('hide');
red.removeClass('hide');
// Отсортируем видимые блоки в начало DOM дерева
item.sortElements(function (a, b) {
return $(a).hasClass('hide') > $(b).hasClass('hide') ? 1 : -1;
});
});
jQuery.fn.sortElements = function () {
var sort = [].sort;
return function (comparator, getSortable) {
getSortable = getSortable || function () {return this;};
var placements = this.map(function () {
var sortElement = getSortable.call(this),
parentNode = sortElement.parentNode,
nextSibling = parentNode.insertBefore(
document.createTextNode(''),
sortElement.nextSibling);
return function () {
if (parentNode === this) {
throw new Error(
"You can't sort elements if any one is a descendant of another.");
}
parentNode.insertBefore(this, nextSibling);
parentNode.removeChild(nextSibling);
};
});
return sort.call(this, comparator).each(function (i) {
placements[i].call(getSortable.call(this));
});
};
}();
в тако виде код только сортирует по 1 выведенной кнопке, а товар который не подходит должен пропадать, но у меня он в конец отсылается, помогите пожалуйста разобраться, диплом горит