Я бы сделал это немного иначе, если бы понял ваши требования. Если при нажатии на ячейку вам нужно что-то сделать с предыдущей нажатой ячейкой, используйте класс. Итак:
$("td").click(function() {
$("td.active").removeClass("active");
$(this).addClass("active");
});
Таким образом, каждый раз, когда вы щелкаете по ячейке, класс active
удаляется, а в новую ячейку добавляется. В приведенном выше коде, где я удаляю класс, вы можете делать с ним все что угодно, и это устраняет проблему сохранения и ссылки на номера строк / ячеек.
Если ваша цель просто по-разному стилизовать ячейку, используйте этот же класс в вашем CSS, например:
td.active { background: yellow; }
Когда вы визуализируете страницу, вы можете сделать любую понравившуюся ячейку активной, назначив ей этот класс.
Если вам нужно узнать текущие и предыдущие ячейки, попробуйте это:
$("td").click(function() {
$("td.active").removeClass("current").addClass("previous");
$(this).addClass("current");
});
И тогда в любой момент вы можете сделать:
$("td.current")...
$("td.previous")...
Если вам действительно нужно знать номер строки / ячейки, по которой щелкнули, попробуйте:
var rownum;
var cellnum;
$("td").click(function() {
var row = $(this).closest("tr");
rownum = $("tr").index(row);
cellnum = row.children("td").index(this);
});
И если вам нужно сослаться на это в любой момент:
$("tr:eq(" + rownum + ") > td:eq(" + cellnum + ")")...