2010-08-02 3 views
2

내 코드의 결함을 여기에서 보는 사람이 있습니까?jQuery 요소를 제거하고 남은 요소의 번호를 다시 매기기

function removeMLRow(rowNo) { 
    $('#ml_organize li:eq(' + (rowNo - 1) + ')').remove(); 
    $($('#ml_organize li:eq(' + (rowNo) + ')').get().reverse()).each(function() { 
     var newID = 'li' + ($(this).index() - 1); 
     $(this).attr('id',newID); 
    }); 
} 
+4

문제가 무엇인지 설명해야하며 오류가 발생합니까? 그것을 포함한다면, 올바르게 행동하지 않는 것입니까? 그런 다음 그것이해야 할 일과 현재의 행동에 대해 잘못된 것이 무엇인지 설명하십시오. –

+1

정확히 달성하고자하는 것은 무엇입니까? – TheCloudlessSky

+0

@ 닉, 전체 : 목록에서 LI 요소를 제거한 다음 "li"요소 ID를 기준으로 해당 목록의 번호를 다시 매 깁니다. 행이 제거되면 목록에있는 행의 위치를 ​​추적하지 못하고 나머지 'li'을 반복 할 때 위치가 건너 뜁니다. 예를 들어, addMLRow 함수를 사용하면 결과는 괜찮습니다. li1, li2, li3, li4, li5, li6, li7, li8, li9, li10, li11, li12, li13, li14, li15. removeMLRow 함수를 실행하면 다음 결과가 나타납니다. li2, li0, li4, li5, li6, li7, li8, li9, li10, li11, li12, li13, li14, li15 참고 : "li1". – DevlshOne

답변

0

닉, 너 거기 정말 있었어! newID에서 (-1) 대신 (+1)해야합니다.

function removeMLRow(rowNo) { 
    $('#ml_organize li').eq(rowNo - 1).remove(); 
    $('#ml_organize li').slice(rowNo - 1).each(function() { 
     var newID = 'li' + ($(this).index() + 1); 
     $(this).attr('id',newID); 
    }); 
    var item_positions = $('#ml_organize').sortable('toArray'); 
    alert(item_positions); 
} 

감사합니다.

+0

감사합니다, Nick ...이 사람을 삭제 해주십시오. – DevlshOne

1

반대로 사용해야합니다. 에서 요소를 제거한 다음 맨 위로 다시 번호를 매기는 것을 볼 수 있습니다. 당신이 바닥에 번호를 매기거나 번호가 바뀌 었습니까?

대한 추가 정보를 원하시면 @ 데이브하십시오

4

확실 질문을 기반으로 말할 수는 없지만, 나는이 필요하시면 생각 :

function removeMLRow(rowNo) { 
    $('#ml_organize li').eq(rowNo - 1).remove(); 
    $('#ml_organize li').slice(rowNo -1).each(function() { 
     var newID = 'li' + ($(this).index() + 1); 
     $(this).attr('id',newID); 
    }); 
} 

첫째, 당신이 사용할 수있는 :eq() 대신 .eq()을 사용하면 더 깨끗하게 정리할 수 있습니다. 그런 다음 .slice()을 사용하여 <li> 개의 요소를 () 이후에 모두 제거했으며 그 번호는 <li>입니다. :gt() (인덱스보다 큼)을 사용할 수는 있지만 .slice()은 문자열 연결을 다듬을뿐입니다 (그러나 조금 더 빠르며 무한한 차이가 있습니다).

+0

수정 된 선택기가 아닌 .eq()가 좋지만 현재 결과가 다음과 같습니다. li-1, li0, li1, li2, li3, li4, li5, li6, li7, li8, li9, li10, li11, li12 – DevlshOne

+0

@Dave - 올바른 번호 매기기를 제공하도록 업데이트되었으며 색인이 기반한 것이 확실치 않아 +1이 작동해야합니다. –

관련 문제