데이터 표가 있으며 각 행에는 사용자가 해당 행을 인쇄 된 표에 포함 시키길 원하는 체크 표시가 있습니다. 행을 선택하면 JQuery와는에 인쇄 클래스를 추가합니다@media 인쇄에 대한 표 행 숨기기
$("td .checkbox").click(function(e){
if (this.checked) {
$("#tr-"+this.id).addClass("print");
} else {
$("#tr-"+this.id).removeClass("print");
}
});
편집 : 아래의 답변에 대한 ID와 클래스를 보여주기 위해 HTML을 추가 ...
<tr id="tr-print-0" class="search-line-item-0 print">
<td>data</td>
<td>data...</td>
<td><input type="checkbox" id="print-0" name="print-0"></td>
</tr>
<tr id="tr-print-1" class="search-line-item-1">...
<tr id="tr-print-2" class="search-line-item-0">...
그런 다음 내 CSS 파일에 내가 가진 행의 표시를 none 또는 block으로 설정하는 @media print {}. 사용자가 페이지를 디스플레이 행만 인쇄 할 때
tr.search-line-item-0, tr.search-line-item-1 {
display: none;
}
tr.search-line-item-0.print, tr.search-line-item-1.print {
display: block;
}
문제가있다 : 블록 표시, 의도 된 동작이지만, 각각의 행은 첫 번째 열 (제 <th>
스팬 내부 렌더링되는 것 같습니다 <tr>
다음으로 다른 모든 <th>
에는 그 아래에 아무 것도 없습니다. 지금까지 Chrome과 Firefox에서만 테스트되었으며 두 브라우저 모두에서 문제가 동일합니다.
목표는 다른 창을 열거 나 iframe을 사용하지 않고 행을 확인하고 인쇄하는 빠른 방법입니다. 그래서 아무도 작동하는 대체 솔루션을 알고 있다면 :)
문제를 설명하는 전체 예제 (CSS가있는 HTML 문서)를 게시하십시오. 예를 들면 'th'요소를 참조하지만 코드 스 니펫에는 이러한 요소가 없습니다. 'tr :'에'display : block'을 설정해서는 안되며, 정상적인 상황에서는'tr :''display : table-row'가 있어야하기 때문에주의하십시오. –
@ JukkaK.Korpela, 감사 표시 : table-row이 트릭을 수행했습니다. 게시하고 싶다면 정답으로 표시하겠습니다. – kreek