sectionRowIndex
является свойством элемента <tr>
, а не атрибутом.
Правильный способ изменить ваш пример кода - получить доступ к элементу jQuery с помощью нулевого индексатора, например:
$("#gv1 tr input[name $= 'txtName']").live('click', function(e){
alert($(this).closest('td').parent()[0].sectionRowIndex);
});
Это вернет правильный индекс строки для вас. Кроме того, если вы собираетесь использовать функцию jQuery .closest()
для обхода DOM, а также .parent()
, почему бы не объединить эти два и просто пройти до ближайшего <tr>
элемента?
$("#gv1 tr input[name $= 'txtName']").live('click', function(e){
alert($(this).closest('tr')[0].sectionRowIndex);
});
Это также будет обрабатывать странные случаи, когда отношения родитель -> ребенок не совсем то, что вы ожидали. Например, если вы связали $(this).parent().parent()
, а затем решили обернуть свою внутреннюю ячейку другим div или span, вы можете испортить отношения. .closest()
- это простой способ убедиться, что он всегда будет работать.
Конечно, мои примеры кода повторно используют предоставленный вами пример выше. Вы можете сначала протестировать более простой селектор, чтобы убедиться, что он работает, а затем уточнить ваши селекторы.