2011-03-16 3 views
4

나는 이와 같은 테이블을 가지고 있고 각 열에 체크 박스가 있고 각 열에 체크 박스가 있습니다. 그래서 내가 행/테이블 헤더의 체크 박스를 체크하면 각 td의 데이터 옆에 진드기 마크 이미지를 보이거나 숨기고 싶다. 선택을 취소하면 눈금 표시가 숨겨져 야합니다. 이것의jQuery 체크 박스에 체크 표시/숨기기 이미지

데모 :

//Monitor the main checkbox ($("#macDaddyCheckbox")) for changes 
$("#macDaddyCheckbox").change(function(){ 
    if($(this).is(":checked")){ 
     //It is checked, so hide the other checkboxes 
     $(".babyCheckboxes").hide(); 
    } else { 
     //It is not chceked, so show the other checkboxes 
     $(".babyCheckboxes").show(); 
    } 
}); 

편집 : http://jsfiddle.net/MpzXU/3/

<table id="example"> 
     <thead> 
     <tr> 
      <th></h> 
      <th>PO Number</th> 
      <th>Hangtag<input type="checkbox" value="hangtag" class="ht_chkbx"/></th> 
      <th>Care Label<input type="checkbox" value="Care Label" class="cl_chkbx"/></th> 
      <th>UPC<input type="checkbox" value="UPC" class="upc_chkbx"/></th> 
     </tr> 
     </thead> 
     <tbody> 
     <tr> 
      <td><input type="checkbox" name="checkbox2" id="checkbox2"></td> 
      <td>6711112</td> 
      <td>1</td> 
      <td>20</td> 
      <td>17</td> 
     </tr> 
     </tbody> 
    </table> 
+0

안녕 Nahom입니다. 우리가 당신을 도울 수 있도록 그것을 개정하십시오. –

+0

@Ian 질문을 업데이트하고 데모를 추가하십시오 ... – Ravi

답변

1

JSFiddle Demo (일치하도록 수정 의견을)

클래스를 추가하여 확인란의 텍스트 색상을 변경합니다. 각각에 대해 클래스를 제거하기 전에 해당 확인란 (행 및 열)이 모두 선택 취소되었는지 확인합니다.

HTML

<table id="example"> 
<thead> 
    <tr> 
     <th></th> 
     <th>A <input type="checkbox" /></th> 
     <th>B <input type="checkbox" /></th> 
     <th>C <input type="checkbox" /></th> 
     <th>D <input type="checkbox" /></th> 
    </tr> 
</thead> 
<tbody> 
    <tr> 
     <td>1 <input type="checkbox"></td> 
     <td>A1</td> 
     <td>A2</td> 
     <td>A3</td> 
     <td>A4</td> 
    </tr> 
    <tr> 
     <td>2 <input type="checkbox"></td> 
     <td>B1</td> 
     <td>B2</td> 
     <td>B3</td> 
     <td>B4</td> 
    </tr> 
    <tr> 
     <td>3 <input type="checkbox"></td> 
     <td>C1</td> 
     <td>C2</td> 
     <td>C3</td> 
     <td>C4</td> 
    </tr> 
</tbody> 

jQuery를이

var headers = $('#example th'); 
$(':checkbox', '#example').change(function(e){ 
    var isChecked = $(this).is(':checked'); 
    if($(this).closest('thead').length){ //columns checkboxes 
     //getting the column index 
     var i = headers.index($(this).parent()); 

     $('tbody tr', '#example').each(function(){ 
      var isLineChecked = $(':checkbox:checked', this).length; 

      if(isChecked && isLineChecked ){ 
       $(this).find('td:eq('+i+')').addClass('selected'); 
      } else { 
       $(this).find('td:eq('+i+')').removeClass('selected'); 
      } 
     }); 

    } else { //line checkbox 
     var columnsCheckboxes = $(':checkbox', headers); 

     $(this).parent().siblings().each(function(i, td){ 
      if(isChecked && columnsCheckboxes.eq(i).is(':checked')){ 
       $(this).addClass('selected'); 
      } else { 
       $(this).removeClass('selected'); 
      } 
     }); 
    } 
}); 
+0

GMO 고마워,하지만 내가 필요한 것은 내가 1과 A를 선택할 때, A1에만 일어난다. 1을 선택하면 B = A2, 1 및 C = A3, 1 및 D = A4 변경이 전체 열에 대해 발생하지 않아야합니다. – Ravi

+1

[link] (http://jsfiddle.net/gmoulin/ qLDan/3 /) JSFiddle을 수정하여 필요한 것을 수행했습니다. – GMO

+0

정말로, 많은 지식과 지식을 공유하는 많은 자료를 제공 해주신이 스레드에 감사드립니다. Infact 이것은 엔터 프라이즈 응용 프로그램을 개발 오전 내 첫 번째 jquery 프로젝트입니다. 다시 KUDOS Stackoverflow 및이 사이트의 전체 개발자 .... :) – Ravi

2

당신은 같은 것을 사용하는 것이

var myImg = $("#myImg"); 

$("#checkBoxAtTheRow").change(function(){ 
    if($(this).is(":checked")){ myImg.hide(); } else { myImg.show(); } 
}); 

$(".tableHeaderCheckBoxes").change(function(){ 
    if($(this).is(":checked")){ $(".babyCheckboxes").hide(); } else { $(".babyCheckboxes").show(); } 
}); 
+0

행에서 체크/체크 해제 할 때 이미지를 표시하거나 숨기고 싶습니다. 그리고 나서 아기 체크 박스를 표시하거나 숨기지 않으려는 테이블 헤더 체크 박스를 선택하십시오 .. – Ravi

+0

Err ... 확인 ... 편집을 참조하십시오? – mattsven

+0

행운의 남자가 아니에요 ... 데모보기 http://jsfiddle.net/VT4UQ/1/ – Ravi

0

이 내가 당신을 줄 수있는 최선의 대답이다. 확인하시기 바랍니다 ...

http://jsfiddle.net/MpzXU/9/

희망이 도움이 :) 당신은 질문이 혼란 보인다

+2

감사합니다. 이안, 기본 이해가 있습니다. 스크립트가 무엇을 찾고 있는지 구현하십시오 ... – Ravi

+0

환영합니다 :) 도움이된다면 투표하십시오. 또는 올바른 대답으로 찾으시면 수표로 표시하는 것을 잊지 마십시오. :) –

관련 문제