Как определить, что вы находитесь в последней строке таблицы HTML? - PullRequest
16 голосов
/ 15 декабря 2010

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

Это мое текущее событие jQuery. .glCreditValue - это класс входного текстового поля, которое находится в последнем TD строки таблицы. Поэтому, когда пользователь выходит из этого ввода, если TD, внутри которого находится вход, находится в последней строке таблицы, я хочу добавить новую строку.

Поскольку данные таблицы генерируются динамически, конечный TD каждой строки имеет текстовое поле ввода с классом .glCreditValue.

$(".glCreditValue").keydown(function(event) {
        var keycode = event.keyCode;
        if (keycode == 9) {
            //HERE i would like to make sure that i'm in the last row of the table
            AddNewRow();
        }
    });

Я пытаюсь использовать селектор tr: last, но я не совсем уверен, куда идти дальше.

Ответы [ 2 ]

31 голосов
/ 15 декабря 2010

Есть несколько способов сделать это, например, вы можете проверить .closest() родительский <tr> и посмотреть, если это .is() a :last-child, вот так:

$(".glCreditValue").keydown(function(event) {
  if (event.which == 9 && $(this).closest("tr").is(":last-child")) {
      AddNewRow();
  }
});
5 голосов
/ 15 декабря 2010

Один из способов сделать это без лишних затрат на запуск селектора - просто получить строку .closest() , затем перейти к элементу .next() и проверить его .length свойство .

Это будет 0, если вы были на последнем <tr>.

if( !$(this).closest('tr').next().length ) {
   // was the last row
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...