Индекс элементов, JQuery или Javascript - PullRequest
5 голосов
/ 05 апреля 2010

У меня есть таблица, которая содержит 3 столбца. Мне нужно связать событие, которое срабатывает при каждом щелчке по одному из этих столбцов с помощью jQuery.

Однако мне нужно знать индекс нажатой колонки.

Т.е.: первый столбец (индекс 0), второй столбец (индекс 1), третий столбец (индекс 2) и т. Д. ...

Как я могу это сделать?

var firstRow:

var firstRow = $("tr:first > th", "table[id*=Grid]");

Взгляните:

firstrow.click(function(e){
//var id = e.target.index;
var id = $(e).parent().children().index(this);//returns -1
})

Ответы [ 3 ]

6 голосов
/ 05 апреля 2010

Вы можете сделать это, используя .index() (на основе 0), например:

$("td").click(function() {
  var i = $(this).parent().children().index(this);
  alert(i);
});
2 голосов
/ 05 апреля 2010

Лучше использовать нативные javascripts .rowIndex вместо jQuerys .index. У jQuery могут возникнуть проблемы при обнаружении элементов заголовка таблицы (TH).

0 голосов
/ 05 апреля 2010

Мне всегда нравилось использовать .prevAll()

$('table').click(function(e) {
  var $targ = $(e.target);
  if ($targ.is('th')) {
    var position = $targ.prevAll().length;
    alert(position);
  }
});

Предварительный просмотр на jsbin

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...