Имеется такой контент
<div id="content">
<div position="16">8</div>
<div position="1,1">2</div>
<div position="1">1</div>
<div position="1,5">6</div>
<div position="1,2">3</div>
<div position="1,2,1,1">4</div>
<div position="1,4">5</div>
<div position="2">7</div>
</div>
<div id="results">
</div>
Нужно при помощи JS отсортировать его чтоб блоки расположились так:
<div position="1">1</div>
<div position="1,1">2</div>
<div position="1,2">3</div>
<div position="1,2,1,1">4</div>
<div position="1,4">5</div>
<div position="1,5">6</div>
<div position="2">7</div>
<div position="16">8</div>
То есть сортировка происходит по параметру position, вот мой набросок уже с ним запарился :/
var myArray = $("#content div");
myArray.sort(function (a, b) {
a = $(a).attr("position");
b = $(b).attr("position");
if ((a.split(',').length-1 === 0) && (b.split(',').length-1 === 0)) { // ЕСЛИ ОБА ЧИСЛА ЦЕЛЫЕ, ничего не делаем а приводим к
a = parseInt(a); //типу INT
b = parseInt(b);
}
if ((a.split(',').length-1 !== 0) && (b.split(',').length-1 === 0)) { // если первое не целое а второе целое
posA = a.indexOf(',');
a = parseInt(a.substr(0,posA);
b = parseInt(b);
if (a == b) {a=0;}
}
if((a.split(',').length-1 === 0) && (b.split(',').length-1 !== 0)) { // если первое целое, а второе не целое
posB = b.indexOf(',');
a = parseInt(a);
b = parseInt(b.substr(0,posB));
if (a == b) {b=0;}
}
if(a > b) {
return 1;
} else if(a < b) {
return -1;
} else {
return 0;
}
});
$("#results").append(myArray);
он еще не закончен под все, то логику я строил такую проверял в значение количество запятых, на этом мог базировать, дальше перестановки, ну то есть если одно число целое, а другое с запятой то мне надо сравнить только первые их цифры, а если они оба дробные типа 1,2 и 1,1 то надо уже сравнить по 2-рым цифрам после запятой и т.д, но что-то его клинет, с целыми числами все ок получается, но у меня задача что надо разобрать строки... помогите люди добрые для кого такая задача элементарная