2012-04-25 2 views
0

여러 열을 포함하는 여러 열 머리글이 있고 열의 올바른 머리글 번호/개수를 찾고 싶습니다.셀 또는 td 중 하나에 대한 colSpan 헤더를 찾으려면 범위가

내가 열 번호를 입력하고 헤더 싶어 예를 열 5 RDataTest6 $입니다 ('(th.eq (2))


td.eq (5))와 헤더는 HTest3 $입니다'는

예 :

<table> 
    <tr> 
     <th>HTest1</th> 
     <th colSpan="2">HTest2</th> 
     <th colSpan="4">HTest3</th> 
     <th colSpan="2">HTest4</th>   
    </tr> 
    <tr> 
     <td>RDataTest1</td> 
     <td>RDataTest2</td> 
     <td>RDataTest3</td> 
     <td>RDataTest4</td> 
     <td>RDataTest5</td> 
     <td>RDataTest6</td> 
     <td>RDataTest7</td> 
     <td>RDataTest8</td> 
     <td>RDataTest9</td> 
    </tr> 
</table> 

+0

무엇이 문제입니까? –

+0

위 표의 개수/숫자는 무엇입니까? 'tr-> td'에서 열의 수를 계산하는 것은 어떨까요? –

답변

1

편집 : 당신은 아래를 참조 헤더 위치를 길게 간단한 배열을 구현해야

var thLocator = [], colCount = 1; 
$table.find('tr:first th').each(function() { 
    for (var i = 0; i < this.colSpan; i++) { 
     thLocator.push(colCount); 
    } 
    colCount++; 
}); 

$table.find('td').click(function() { 
    alert(thLocator[$(this).index()]); 
}); 

언제든지 td 열의 위치를 ​​알 수 있습니다. DEMO -> 열 머리말 위치를 확인하려면 TD를 클릭하십시오.


원하는 개수가 확실하지 않으므로 모든 열 수를 적어 두었습니다. 한 당신이 어떤 rowspan의를 가지고 있지 않는 한, 쉽게 DEMO

$(function() { 
    var $table = $('table'); 

    alert('Table Header Count ' + $table.find('tr:first th').length); 

    var thCount = 0; 
    $table.find('tr:first th').each(function() { 
     thCount += this.colSpan; 
    }); 

    alert('Computed TH Count ' + thCount); 

    alert('Table TD Col Count ' + $table.find('tr:eq(1) td').length); 
}); 
+0

열 번호를 입력하고 헤더를 가져 오려고합니다. 예 열 5는 RDataTest6 $ ('td.eq (5))이고 헤더는 HTest3 $ ('th.eq (2))입니다. – Nation

+0

@Nation 업데이트 된 DEMO를 확인하십시오. 그것이 당신이 원하는 무엇인가인지 알려주세요. –

+0

좋아요! 감사합니다 베가. – Nation

0

를 참조하십시오

function getCell(tr, col) { 
    var cell = tr.firstElementChild; 
    while (cell && (col -= cell.colSpan || 1)>=0) 
     cell = cell.nextElementSibling; 
    return cell; 
} 

demonstration를 참조하십시오.

관련 문제