/ / JQuery triant DIV par contenu - javascript, jquery, sorting

JQuery triant DIV par contenu - javascript, jquery, tri

J'utilise le code suivant pour trier le contenu DIV par date et titre.

Cela fonctionne bien, mais pour la date, je veux le trier avec le plus récent en premier - pour le moment, il met le plus récent en dernier.

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"));
});

Comment puis-je modifier la commande pour la date uniquement (#sPrice)

Réponses:

0 pour la réponse № 1

Ajoutez un analyseur sur le sélecteur au conditionnel dans le rappel de tri.

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);
}