2009-10-17 6 views
1

행이 레코드 세트에서 동적으로로드되는 테이블이 있습니다. 나는 또한 테이블에있는 체크 박스가 체크되어있을 때 x = y 일 때 모든 행을 숨기지 만 실제로는 오른쪽에 위치하는 세로 테두리를 가지고 있기 때문에 자바 스크립트를 사용했다. CSS를 사용하는 테이블의 마지막 행 .sortable .dynamicrow:last-child td{자바 스크립트에서 요소 스타일 새로 고침

그래서 상자를 체크하고 마지막 한 행을 제거하면 테두리가 제대로 사라지지 않습니다. 기본적으로 CSS를 다시 실행하거나 새로 고침해야합니다.

javascript에서 요소의 스타일/CSS를 새로 고치는 방법을 묻는 중입니다.

.sortable .dynamicrow:last-child td{ 
    background-image:url(../Images/tablevborderbottom.png); 
    background-position:right; 
    background-repeat:no-repeat; 
} 

내가 마지막 행이 제거됩니다 때로는 마지막 행에 수직 경계 페이드를하기 위해 사용하는 CSS, 그래서 두 번째 마지막 행은 마지막 행이됩니다 만, 그것은 고체 경계의 유지와 그렇지 않은 사라지다.

페이지를로드 한 후에 Javascript로 인해 마지막 자식이 제거되므로 마지막 자식이 마지막 자식이됩니다. 위의 CSS를 마지막 마지막 자식에 적용하려면 어떻게해야합니까? 어린이?

+1

예를 게시하거나 코드를 게시 할 수 있습니까? – Kobi

+0

이 문제는 어떤 브라우저 및 버전에서 발생합니까? 자바 스크립트 라이브러리를 사용하고 있습니까? – brianpeiris

+0

Firefox (minefield)) 3.7을 사용하고 있습니다. 문제입니까? 그게 어떻게 작동하는지 알았어. –

답변

0

기존 스타일에 클래스 선언을 추가하고 마지막 행을 숨기면 CSS 클래스가 마지막 행에 적용됩니다.

 
    .sortable .dynamicrow:last-child td, .dummy_last_row{ 
    background-image:url(../Images/tablevborderbottom.png); 
    background-position:right; 
    background-repeat:no-repeat; 
} 

JavaScript. 이 5 행의 onclick = 버튼과 "Lst_row (이)」

 
function Lst_row(row){ 
    row = row.parentNode.parentNode; 
    tbl = document.getElementById("sorttable"); 
    rows = tbl.getElementsByTagName("TR"); 
    if(row == rows[tbl.getElementsByTagName("TR").length-1] || row.className.indexOf("dummy_last_row") != -1){ 
     for (i=0; i<rows.length; i++){ 
      if(i != 0 && row == rows[i] && rows[i-1])){ 
       rows[i-1].className += " dummy_last_row"; 
      } 
     } 
    } 
} 

과정이 매우 간단 1 횡 간단한 테이블에 기초하지만, 상기베이스가된다.

+0

행 수가 동적 인 경우 중요합니까? 그래서 정해진 숫자가 없습니까? –

+0

아니요, 중요하지 않습니다. 정렬 테이블에있는 행만큼 많은 행이 작동합니다. 그러나 테이블 안에서 요소를 클릭하면 테이블 밖에서 존재하는 하나의 체크 박스가 생기지 만 실제로 작업하려면이 테이블을 조정해야합니다. 변경 방법을 알아낼 수 없다면 알려주십시오. – Psytronic

+0

코드의 각 라인을 설명 할 수 있을까요? 아이디어를 얻지 만 완전히 이해하고 싶습니다. 변수 설정하는 것을 이해합니다. –

관련 문제