jQuery - поиск номера строки текущего элемента select в его обработчике изменений - PullRequest
11 голосов
/ 09 марта 2010

У меня есть стол. В этой таблице есть элемент select. Как узнать, в какой строке таблицы находится элемент select, из обработчика события select:

$('#selectElemID').live('change', function(){...});

Спасибо

Ответы [ 2 ]

36 голосов
/ 09 марта 2010

EDIT (два года спустя): пожалуйста, не делайте так, как я описал ранее, это полная трата, поскольку строки таблицы уже имеют свойство rowIndex, поэтому просто не нужно ничего вычислять:

$('#selectElemID').live("change", function (){
    alert($(this).closest("tr")[0].rowIndex);
});

Демо-версия.

<silliness>

Это следует сделать, если вы хотите номер строки текущего элемента select (что я понял из вопроса):

$('#selectElemID').live('change', function(){
    alert($(this).closest("tr").prevAll("tr").length + 1);
});

Объяснить:

$(this).closest("tr")

означает выбор ближайшего родителя tr этого элемента выбора.

.prevAll("tr").length + 1

означает выделение всех предыдущих строк и получение длины возвращаемой коллекции. Увеличьте его на единицу, чтобы получить текущий номер строки, потому что мы находимся на всего предыдущих строк + 1 .

Для получения дополнительной информации:

</silliness>

2 голосов
/ 25 марта 2010

также:

$('#selectElemID').live('change', function(){
    alert($(this).closest("tr")[0].rowIndex);
});
...