Я строю сценарий сортировки таблицы jQuery. Да, да, я знаю, что для этого есть плагины, но где весело избавляться от чужих пальто (не говоря уже о полном отсутствии обучения и понимания)?jQuery Точное совпадение числа для таблицы Сортировка
Итак, у меня есть хорошая сортировка для альфа-типов, теперь я работаю над числовым типом.
Так быстро и грязно. Я получаю значения столбцов и подтолкнуть их в массив:
var counter = $(".sort tr td:nth-child("+(columnIndex+1)+")").length;
for (i = 1; i <= counter; i++) {
columnValues.push($(".sort tr:eq("+i+") td:eq("+columnIndex+")").text());
}
Я затем сортировать их массив:
columnValues.sort(function(a,b){
return a-b
});
я затем проверить уникальные записи (это в основном для тех же имен):
$.each(columnValues, function(i, el){
if($.inArray(el, uniqueColumns) === -1) uniqueColumns.push(el);
});
Затем я использую массив в виде списка ключей для получения данных из таблицы и нажатия в другой массив. Здесь возникает проблема. Для имен это работает просто отлично, но с номером (т. Е. 3, 30, 36) это не так. С отсортированным списком, начиная с 3, он видит 3 в 30 и/или 36 и захватывает его.
Вот что я пробовал:
for (i = 0; i < counter; i++) {
var key = uniqueColumns[i];
$(".sort tr:contains("+key+") td").each(function(){
rowValues.push($(this).text());
});
}
И:
for (i = 0; i < counter; i++) {
var key = uniqueColumns[i];
$(".sort tr td").filter(function(i){
if($(this).text() === key) {
rowValues.push($(this).text());
}
});
}
Вот скрипка работает код с первым набором кода (который работает лучше, чем вторая):
ОБНОВЛЕНИЕ:
Также попробовал это (все еще не работает, работает для начального сортировки b не последующие):
for (i = 0; i < counter; i++) {
var key = uniqueColumns[i];
var found = false;
$(".sort tr:contains("+key+")").filter(function(j){
$(this).children().each(function(){
if ($(this).text() === key) {
found = true;
}
});
$(this).children().each(function(){
if (found) {
rowValues.push($(this).text());
}
});
});
}
Если вы действительно хотели избежать езды на чужой кокетливости, вы не использовали бы jQuery. ;-) – Blazemonger
@Blazemonger LOL! Ну, я вижу большую разницу между использованием jQuery, тем, что я считаю каркасом более или менее, и просто подключением какого-то кода другого, но я получаю ваш jab: P – defaultNINJA
@Blazemonger. Но если учесть этот аргумент, я должен просто начать с машинного кода и напишите мой собственный язык :) (да, правый lol) – defaultNINJA