2014-04-15 3 views
0

다음 예제와 같은 테이블이 있습니다.배열을 테이블 행 인덱스와 일치 시키려면 각각에 대한 작업 수행

<tr> 
    <td>Content #1a</td> 
    <td>Content #1b</td> 
</tr> 
<tr> 
    <td>Content #2a</td> 
    <td>Content #2b</td> 
</tr> 

그리고 테이블 행과 동일한 값의 값을 가진 배열 값. 행이는/숨기기 행을 보여, 해당 배열 값을 업데이트 한 다음 쿠키와 같은 배열을 저장합니다 클릭하면

var arr = [ 0, 0 ] 

은 현재 내가 그들을 그렇게 연결되어있다.

var $tr = $('tbody tr').on('click', function() { 
    var i = $tr.index(this); 
     if(arr[i] == 0) { 
     arr[i] = 1; 
     // hide it 
     } 
     else { 
     arr[i] = 0; 
     // show it 
     } 
    $.cookie("CName", arr, { expires: 1, path: '/'}); 
}); 

문제는 내가 다음 배열 값을 기준으로 해당 행을 숨기기/표시 역으로 그 작업을 수행하는 방법을 잘 모릅니다, 그래서 배열에 쿠키를 변환합니다.

var arr = $.cookie("CName").split(','); 

아이디어는 사용자가 페이지로드시 숨겨진 행을 기억하게하는 것입니다.

감사

답변

1
$.each(arr,function(index,el){ 
     var tr = $('tbody:nth-child('+index+')'); 
     if(el == 1) 
      $(tr).show(); 
     else 
      $(tr).hide(); 
    }); 

이 관계없이 배열에 설정 뭐죠의 모든 초 TR을 숨기는 것으로 보인다.

문제

는 n 번째 아이가

var tr = $('tbody tr:eq(' + index + ')'); 

이 문제를 해결할 것 1 변화 그 라인에서 시작한다는 것입니다.

+0

이것은 배열에 설정된 whats와 상관없이 모든 두 번째 TR을 숨기는 것으로 보입니다. – NuMs

+0

님이 답변을 – Exlord

+0

님의 질문에 답변했습니다. 감사 – NuMs

관련 문제