У меня есть HTML, который выглядит примерно так:
<tr id="row">
<td id="cell_1">Cell 1</td>
<td id="cell_4">Cell 4</td>
<td id="cell_8">Cell 8</td>
<td id="cell_9">Cell 9</td>
<td id="cell_11">Cell 11</td>
...
</tr>
У меня нет возможности изменить это. Например, у меня есть переменная cell
, которая указывает на объект jQuery, представляющий второй td
, и я хотел бы получить элемент, который составляет n
ячеек после cell
. Один из способов получить это будет:
var cell = $("#cell_4");
var next = cell;
for (var i = 0; i < n; i++) {
next = next.next();
}
Но я думаю, что это не самый правильный путь, поскольку для него требуется n
количество «ходов» через DOM. Другой способ, которым я мог придумать, заключается в использовании метода index()
(не тестировался, поэтому он мог содержать некоторые ошибки, но я думаю, что метод понятен):
var index = $("#row > td").index(cell);
var next = $("row td:nth-child(" + index + n + ")");
Есть ли "лучший" встроенный способ достижения этого результата? Например, что-то похожее на это:
var next = cell.nextTimes(n);