Относительный доступ к ячейкам таблицы с использованием jQuery - PullRequest
0 голосов
/ 17 сентября 2009

у меня есть вложенная таблица 3х3

<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 ]

1 голос
/ 17 сентября 2009

вы можете попробовать определить специальные функции для извлечения каждой возможной ячейки брата

var myCell = $('#myCell');

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

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

и при пропущенных ячейках вы просто получите ноль;

0 голосов
/ 01 апреля 2014

Я пришел на этот вопрос в поисках чего-то немного другого. Возможно, это поможет. Учитывая следующую таблицу:

<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

Надеюсь, что это дает еще один вариант и понимание.

0 голосов
/ 27 ноября 2009

Прямого решения не существует. Я использовал проекционную матрицу для расчета около клеток. Мое решение выпущено в GridWizard - HTML Table Constructor

0 голосов
/ 17 сентября 2009

К сожалению, tr и td ненадежны при работе с проблемами colspan / rowspan. SO1303106 показывает решение, которое создает матрицу каждой строки / столбца и создает некоторые функции, которые помогут вам сделать запрос. Эта статья вдохновила это решение и показала проблему. Решение не является специфичным для jQuery, и я не удивлюсь, если кто-то придумает лучшее решение.

...