Возвращает ноль, потому что index()
без аргумента возвращает индекс этого элемента в его братьях и сестрах, и этот флажок, скорее всего, не имеет братьев и сестер
Требуется индекс родителя <td>
var columnNo = $(this).parent().index();
// OR
var columnNo = $(this).closest('td').index();