1

複数の列にまたがる複数の列ヘッダーがあり、列の正しいヘッダー番号/数を見つけたいと思います。また、一部のテーブルデータにはrowspanとcolspanがあります。

任意のセルまたはテーブルデータをクリックして、その左側と上部のヘッダーを取得できるようにしたい。

  1. したがって、「D9:LH1-TH4(H4a)」をクリックすると、次のようになります。

    • 左ヘッダーはLH1、上ヘッダー1はTH4、上ヘッダー2はH4aです。
  2. そして、「D3:LH2-TH2(H2b-H4a)」でクリックすると、次のようになります。

    • 左ヘッダーはLH2、上ヘッダー1はTH2、上ヘッダー2はH2bです。

例:

<table width="200" border="1" style="background-color:#000; color:#FFF">
  <tr>
    <th scope="col">&nbsp;</th>
    <th colspan="2" scope="col"> TH1 </th>
    <th colspan="4" scope="col"> TH2 </th>
    <th colspan="6" scope="col"> TH4 </th>
  </tr>
    <tr>
    <th scope="col">&nbsp;</th>
    <th scope="col"> H1a </th>
    <th scope="col">H1b</th>
    <th scope="col"> H2a</th>
    <th scope="col">H2b</th>
    <th scope="col">H2c</th>
    <th scope="col">H2d</th>
    <th colspan="6" scope="col"> H4a </th>
  </tr>
  <tr>
    <th rowspan="3" scope="row"><span>LH1</span></th>
    <td colspan="2" rowspan="3">D1:LH1-TH1(H1a-H1b)</td>
    <td colspan="3" rowspan="2">D2:LH1-TH2(H2a-H2c)</td>
    <td rowspan="3">D5:LH1-TH2(H2d)</td>
    <td rowspan="3">D6:LH1-TH4(H2a-H2c)</td>
    <td colspan="2">D7:LH1-TH4(H4a)</td>
    <td>D8:LH1-TH4(H4a)</td>
    <td rowspan="3">D13:LH1-TH4(H4a)</td>
    <td rowspan="3">D14:LH1-TH4(H4a)</td>
  </tr>
  <tr>
    <td colspan="3">D9:LH1-TH4(H4a)</td>
  </tr>
  <tr>
    <td colspan="2">D3:LH1-TH2(H2a-H2b)</td>
    <td>D4:LH1-TH2(H2c)</td>
    <td>D10:LH1-TH4(H4a)</td>
    <td>D11:LH1-TH4(H4a)</td>
    <td>D12:LH11-TH4(H4a)</td>
  </tr>
  <tr>
    <th scope="row"><span>LH2</span></th>
    <td colspan="2" >D1:LH2-TH1(H1a-H1b)</td>
    <td colspan="3">D2:LH2-TH2(H2a-H2c)</td>
    <td colspan="5">D3:LH2-TH2(H2b-H4a)</td>
    <td>D4:LH2-TH4(H4a)</td>
    <td>D5:LH2-TH4(H4a)</td>
  </tr>
</table>​

このリンクをご覧ください

4

2 に答える 2

1

それは厄介なトリッキーでした。親オフセットを使用してヘッダーを見つけることができます。

このフィドルで動作するようになりました http://jsfiddle.net/work4liberty/fk6sy/14/

于 2012-04-29T02:18:38.867 に答える
0
$('td')​.on('click', function() {
    var text = $(this).text().split(':')[1],
        LH = text.split('-')[0],
        TH = text.split('-')[1].split('(')[0],
        TH2 = text.split('-')[1].split('(')[1];
    console.log('Left header is '+LH+', Top header 1 is '+TH+' and Top header 2 is '+TH2)
})​;​

フィドル

于 2012-04-29T01:05:10.800 に答える