2013-02-18 4 views
1

20 개의 페이지 (페이지 당 10 개의 행)로 페이징되는 200 개의 행 테이블이 있습니다. 각 행에는 확인란이 있습니다. 나는 모든 테이블이 여전히 존재하도록 jPage를 사용하고, "display : none"에 의해서만 감추어진다. 나는이 같은 (첨부 일부 이전 조건) 모든 확인란을 선택하는 기능, 뭔가를 작성했습니다 :Javascript : 화면의 체크 박스 만 선택하는 방법

$('#masterCbox').click(function() { 
    if($(this).is(':checked')) { 
    $('.childCbox').prop('checked', false); 
    $('.select-y').children('.childtd').children('.childCbox').prop('checked', true); 
    } else 
    $('.childCbox').prop('checked', false); 
}); 

이 클래스가 모든 행을 확인합니다 = "선택-Y '.

그러나 화면의 체크 박스 만 선택해야합니다 (확인란은 페이지를 표시하는 행에 속합니다). 나는 그것을 어떻게 성취 할 것인가?

+0

당신이 다른 타 만들고있어 당신은 어떻게 우리를 알 수 있습니다 숨김으로 숨김 의미 :이 'display : none'이 어디에 적용 되었습니까? – asifsid88

+0

적절한 '부모'의 '표시'CSS 속성을 검사하고 선택하지 않도록 선택기를 수정하십시오. – marekful

+0

숨겨진 페이지의 모든 체크 박스에 "disabled"플래그가 "true"로 설정되어 양식 제출시 게시되지 않도록 할 수 있습니다. – Pointy

답변

1

JQuery에서 : visible 셀렉터를 사용하여 표시되는지 여부를 확인할 수 있습니다.

1

확인은 볼, 그리고 어딘가에 .select-y 일치하는 부모가있는 경우 바로 모든 children() 물건 대신 확인하는 경우 : 당신은 당신의 행을 볼 수 있습니다 있는지 확인하는 필터를 적용 할 수 있습니다

$('#masterCbox').click(function() { 
    if(this.checked) { 
     $('.childCbox').prop('checked', false).filter(function() { 
      return $(this).is(':visible') && $(this).closest('.select-y').length; 
     }).prop('checked', true); 
    } else { 
     $('.childCbox').prop('checked', false); 
    } 
}); 
+0

이것은 아름답게 작동합니다. – vCube

0

:

$('.select-y').is(':visible').children('.childtd').children('.childCbox').prop('checked', true); 
0

이 작업을 수행 할 수 있습니다

$('.select-y .childtd').children('.childCbox:visible').prop('checked', true); 
관련 문제