/ / JQuery-Sortierung DIV nach Inhalt - Javascript, JQuery, Sortierung

JQuery DIV nach Inhalt sortieren - Javascript, Jquery, Sortieren

Ich benutze den folgenden Code, um DIV-Inhalte nach Datum und Titel zu sortieren.

Es funktioniert gut, aber für das Datum möchte ich es mit dem neuesten zuerst sortieren - im Moment legt es das neueste zuletzt.

function sortUsingNestedText(parent, childSelector, keySelector) {
var items = parent.children(childSelector).sort(function(a, b) {
var vA = jQuery(keySelector, a).text();
var vB = jQuery(keySelector, b).text();
return (vA < vB) ? -1 : (vA > vB) ? 1 : 0;
});
parent.append(items);
}

/* setup sort attributes */
jQuery("#sDate").data("sortKey", "span.date");
jQuery("#sStyle").data("sortKey", "span.title");


/* sort on button click */
jQuery("button.btnSort").click(function() {
sortUsingNestedText(jQuery(".sort-div"), "div",
jQuery(this).data("sortKey"));
});

Wie kann ich die Reihenfolge nur für das Datum ändern (#sPrice)?

Antworten:

0 für die Antwort № 1

Fügen Sie einen Parser im Selektor in einer Bedingung im Sortier-Callback hinzu.

function sortUsingNestedText(parent, childSelector, keySelector) {
var items = parent.children(childSelector).sort(function(a, b) {

var vA = jQuery(keySelector, a).text();
var vB = jQuery(keySelector, b).text();

// date sorting
if(keySelector.indexOf(".date") >-1){
return new Date(vB) - new Date(vA);
}else{
return (vA < vB) ? -1 : (vA > vB) ? 1 : 0;
}
});
parent.append(items);
}