0

ネストされたテーブルが3x3あります

<table>
  <tr>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td id='myCell'></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
  </tr>
</table>

したがって、セルを「#myCell」に近づける必要があります-左側、右側、上部、下部。

var myCell = $('#myCell')[0];
var leftCell = myCell.previousSibling;
var rightCell = myCell.nextSibling;
var topCell = $(myCell).parent()[0].previousSibling().children()[myCell.cellIndex];
var bottomCell = $(myCell).parent()[0].nextSibling().children()[myCell.cellIndex];

大丈夫そうです。今、私は特定のテーブルレイアウトで同じセルを取得する必要があります。

<table>
  <tr>
    <td rowspan=3></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td id='myCell'></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
  </tr>
</table>

このレイアウトは、上、右、下のセルを取得できることを意味します。

4

4 に答える 4

1

可能な各兄弟セルを取得するための特別な関数を定義してみてください

var myCell = $('#myCell');

function getLeft() {
  return $(myCell).previousSibling();
}

function getRight() {
  return $(myCell).nextSibling();
}
// etc for top/right

欠落しているセルでは、nullを受け取るだけです。

于 2009-09-17T10:35:43.353 に答える
0

悲しいことに、colspan / rowspanの問題を処理する場合、trとtdは信頼できません。 SO1303106は、各行/列のマトリックスを構築し、それを照会するのに役立ついくつかの関数を作成するソリューションを示しています。 この記事はその解決策に影響を与え、問題を示しています。解決策はjQuery固有のものではなく、誰かがより良い解決策を思いついたとしても驚かないでしょう。

于 2009-09-17T12:04:41.007 に答える
0

直接的な解決策はありません。射影行列を使用して、近くのセルを計算しました。GridWizardでリリースされた私のソリューション-HTMLテーブルコンストラクター

于 2009-11-27T06:35:09.870 に答える
0

私はこの質問に少し違うものを探しに来ました。おそらくこれは役立つでしょう。次の表があるとします。

<table>
  <tr>
    <td>10</td>
    <td id='selectMe'>20</td>
  </tr>
  <tr>
    <td>30</td>
    <td>40</td>
  </tr>
</table>

JQueryの使用:

$.('td#selectMe').prev('td'); //10
$.('td#selectMe').parent().next('td'); //30

これが別のオプションと洞察を提供することを願っています。

于 2014-04-01T15:27:04.710 に答える