내 javascript 응용 프로그램에서 divs를 드래그 한 후 ... 모든 div에 숫자 클래스를 지정하고 위치순으로 정렬하려고합니다. 나는 많은 것을 연구했고, 다음을 만들었다. 그러나 그것은 단지 작동하지 않는다. 이전 값을 덮어 쓰기 때문이다Javascript - 다차원 배열 정렬 - 문자열 및 Int - 순서 By
var ele = document.getElementsByTagName("div");
var i = 0;
var MyDrags = [];
while(ele[i]) {
if(ele[i].id.substr(0, 4)=="drag") {
MyDrags["distance"]=parseInt(document.getElementById(ele[i].id).style.top,10);
MyDrags["id"]=ele[i].id;
}
i++;
}
MyDrags.sort(function(a,b) {
return a.distance - b.distance;
});
i = 0;
while(MyDrags["distance"][i]) {
document.getElementById(MyDrags["id"][i]).innerHTML=MyDrags["distance"][i];
i++;
}
Jquery 나 다른 라이브러리를 사용하기 위해 DOM 조작을 수행 할 것을 강력히 권장합니다. 복잡한 일을하는 경우 털이 자랄 수 있습니다. – VoronoiPotato
'MyDrags = new Array()'대신에'MyDrags = []'를 사용하십시오. 더 깨끗하고 더 성능이 좋습니다 (http://jsperf.com/literal-vs-constructor-array/4). –
@ChrisFrancis 고맙습니다. 두 번 테스트했습니다 ... 그리고 'new Array()'가 항상 가장 빠릅니다. 그러나 배열을 만드는 방법을 바꿀 것입니다. – Kenedy