2012-01-09 3 views
3

나는 테이블과 같이 있습니다루프를 사용하지 않고 HTML 테이블 열을 강조 표시하는 방법은 무엇입니까?

<table> 
    <thead> 
    <tr> 
    <th id="col-1"><input type="button" class="some" value="Company" /></th> 
    <th>name</th> 
    <th>Adress</th> 
    <th>Zip</th> 
    <th>Place</th> 
    <th>Country</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr class="even"> 
    <td headers="col-1">Some ltd</td> 
    <td>some name</td> 
    <td>some street</td> 
    <td>some zip</td> 
    <td>some town</td> 
    <td>some country</td> 
    </tr> 
    <tr class="odd"> 
    <td headers="col-1">Corp</td> 
    <td>some name</td> 
    <td>some street</td> 
    <td>some zip</td> 
    <td>some town</td> 
    <td>some country</td> 
    </tr> 
    </tbody> 
</table> 

홀수와 짝수 행은 다른 하이라이트 수업을 oddHigh및 evenHigh. 나는이 같은 열을 강조 할 열 헤더의 클릭에

:

$(".some").live("click", function() { 
    var val = $(this).closest("TH, th").attr('id'), 
     col = $("td[headers="+ val +"]"), 
     // set odd/even 
     i = col.closest("TR, tr").hasClass("odd") ? "oddHigh" : "evenHigh"; 

    col.hasClass("colHigh") ? col.removeClass("colHigh "+i) : col.addClass("colHigh "+i); 
    }); 

oddHigh로 전체 열을 강조한다.

전체 선택을 반복하지 않고 가장 가까운 행의 클래스에 따라 강조 표시 할 수있는 방법이 있습니까? 또는 내가 colOdd tr.odd의 TD ...colEven tr.even TD .. 및 2 별도의 문을 사용 -에 설정해야합니까?

+0

나는 루프없이 빠져 나갈 수 없다고 생각하지만,'jquery.each' 메소드를 사용하여 코드를 단순화 할 수있다. –

답변

5

브라우저에서 지원하는 경우 CSS :even:odd css 의사 클래스 선택기를 사용할 수 있습니다. 또한

tr:nth-child(odd) 

tr:nth-child(even) 

호환성에 대한 http://caniuse.com/#search=nth-child를 참조하십시오. (no IE 6,7,8)

+0

네, 이것도 생각했습니다. 그러나 그것은 IE7,8을 커버 할 필요가 있습니다. 누군가 다른 비 루프 솔루션이 나오면 좀 더 기다려야합니다. 그렇지 않은 경우 수표를받습니다. Thx 지금까지. 이 경우 – frequent

+0

같은 경우 다음과 같이하면 간단해질 수 있습니다. $ ('input.some : nth-child (odd)'). toggleClass ('oddHigh'); 짝수 클래스와 비슷합니까? – c4urself

3

:even:odd jQuery 의사 선택기를 볼 수 있습니다. : D

관련 문제