TCL:
proc a {} a
у меня нет tclsh интерпретатора, который может сделать хвостовую рекурсию, но это могло бы одурачить такую вещь:
proc a {} "a;a"
Если вы определили обработчик кликов непосредственно в 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;
});
Попробуйте пример здесь .
Чтобы ответить на ваш первый вопрос:
$("#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;
});
Это должно сработать:
$('#tableId tr').click(function () {
var index = $(this).siblings('tr').index(this);
});
Вам не нужно tr
в звонке братьям и сестрам
, если вы убедитесь, что ваш HTML-код будет правильно сформирован.