2013-07-16 1 views
0

해결하기 까다로운 상황이 있습니다. jquery 또는 사용 가능한 모든 플러그인을 사용하여 테이블 및 해당 데이터의 임의로 열을 섞으려고합니다.임의의 셔플 <table> 열

열을 특정 위치로 이동할 수 있지만 원하는 것은 임의의 위치로 열과 데이터를 임의로 섞는 것입니다.

예 :

실제 :

<table> 
<tr> 
    <td>One</td> 
    <td>Two</td> 
    <td>Three</td> 
    <td>Four</td> 
</tr> 
<tr> 
    <td>Data One</td> 
    <td>Data Two</td> 
    <td>Data Three</td> 
    <td>Data Four</td> 
</tr> 
</table> 

예상 :

<table> 
<tr> 
    <td>Two</td> 
    <td>Five</td> 
    <td>One</td> 
    <td>Three</td> 
    <td>Four</td> 
</tr> 
<tr> 
    <td>Data Two</td> 
    <td>Data Five</td> 
    <td>Data One</td> 
    <td>Data Three</td> 
    <td>Data Four</td> 
</tr> 
</table> 
+0

지금까지 무엇을 했습니까? –

+0

나는 detach() 메서드를 사용하여 특정 위치로 개별 열을 이동하고 필요한 위치에 insertBefore()를 수행 할 수있었습니다. – JagmohanBhatt

+0

코드를 표시하십시오 (질문 편집) – RedEyedMonster

답변

0

이 실제로 매우 간단하다 (정확한 형식에서 나는 열이 어떤 위치에 무작위로 단행되고 싶지로) 외부 라이브러리를 사용합니다. 밑줄 JS에는 큰 효과를 내기 위해 사용할 수있는 셔플 메서드가 있습니다.

셔플 : http://underscorejs.org/#shuffle

여기를 참조하십시오 : 걸리는 전부 http://jsfiddle.net/KyleMuir/NfvBa/

var rows = $('tr'); 
$.each(rows, function(index, value) { 
    var cells = $('td', value); 
    var shuffledCells = _.shuffle(cells); 
    $(this).html(shuffledCells); 
}); 

.

편집 : 함께 이동하는 데이터를 원하는 당신의 새로운 요구 사항, 내가 함께이 예를 던진 감안할 때 :이 예에서는 http://jsfiddle.net/KyleMuir/NfvBa/3/

을, 나는 저장할 우리가 이름 값 쌍으로 관심있는 데이터 정렬. 그렇게하면 배열을 한 번 섞어서 관심있는 속성을 뽑아 낼 수 있습니다. 값을 뽑은 다음 테이블 행에 삽입합니다. 나는 테이블 행 클래스를 주었지만, 똑 바른 CSS 선택자로 할 수 있었다.

희망이 도움이됩니다.

+0

글쎄, 대답에 정말 흥분했습니다. 이 셔플의 문제점은 헤더이며 데이터는 독립적으로 셔플됩니다. 헤더와 데이터를 동기화 상태로 유지하려고합니다. 하나가 특정 위치로 이동하면 그 아래의 데이터도 해당 위치로 이동해야합니다. – JagmohanBhatt

+0

데이터에 어떤 종류의 관계를 추가하지 않으면 이것은 매우 어려울 것입니다. 그 순간의 데이터는 완전히 무관합니다. 그것이 나라면 이름값 쌍의 배열을 만들고 그 배열을 뒤섞어서 테이블에 삽입하십시오. –

+0

@JagmohanBhatt, 편집 참조. –