Как знать индекс <TR> в <таблица> с jQuery?

TCL:

proc a {} a

у меня нет tclsh интерпретатора, который может сделать хвостовую рекурсию, но это могло бы одурачить такую вещь:

proc a {} "a;a"
11
задан Community 23 May 2017 в 10:29
поделиться

3 ответа

Если вы определили обработчик кликов непосредственно в tr , вы можете использовать метод index следующим образом:

$('#tableId tr').click(function () {
  var rowIndex = $('#tableId tr').index(this); //index relative to the #tableId rows
});

Если событие клика привязано не непосредственно к элементу tr (если вы используете привязку, кнопку, и т. д ...), вы должны найти ближайший tr , чтобы получить правильный индекс:

$(selector).click(function () {
  var rowIndex = $('#tableId tr').index($(this).closest('tr'));

  return false;
});

Попробуйте пример здесь .

23
ответ дан 3 December 2019 в 04:32
поделиться

Чтобы ответить на ваш первый вопрос:

$("#id tr").click(function() {
  alert($("#id tr").index(this));
});

Если вы просто выполните:

$("table tr").index(this);

и у вас есть несколько таблиц на странице, вы получите ошибочный результат.

При этом, как говорится, вам не нужно знать индекс, чтобы перемещать строки вверх и вниз в таблице. Например:

<table id="foo">
<tr>
  <td><a href="#" class="up">Up</a> <a href="#" class="down">down</a></td>
  <td>First row</td>
</tr>
<tr>
  <td><a href="#" class="up">Up</a> <a href="#" class="down">down</a></td>
  <td>Second row</td>
</tr>
<tr>
  <td><a href="#" class="up">Up</a> <a href="#" class="down">down</a></td>
  <td>Third row</td>
</tr>
</table>

с чем-то вроде:

$("a.up").click(function() {
  var row = $(this).closest("tr");
  if (row.prev().length > 0) {
    row.insertBefore(row.prev());
  }
  return false;
});
$("a.down").click(function() {
  var row = $(this).closest("tr");
  if (row.next().length > 0) {
    row.insertAfter(row.next());
  }
  return false;
});
1
ответ дан 3 December 2019 в 04:32
поделиться

Это должно сработать:

$('#tableId tr').click(function () {
    var index = $(this).siblings('tr').index(this);
});

Вам не нужно tr в звонке братьям и сестрам , если вы убедитесь, что ваш HTML-код будет правильно сформирован.

0
ответ дан 3 December 2019 в 04:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: