2011-02-15 22 views
8

Escribir una extensión para tablesorter .. aunque es mi primer intento de extender cualquier js. Tengo un número de <select> s dentro de una fila de <td> s & necesidad de conocer la columna esta td sienta en.Obtener el número de columna de td

Cuando se cambia un valor en cualquiera de estos selecciona, por ejemplo,

$('select').change(function(){ 

}); 

tengo que controlar la columna de este selecto se sentado en establecer col para:

('tr.result > td:nth-child('+col+')').each(function(){ 

¿Hay alguna manera de obtener esta información de la td seleccionar está en ?! ?

- solución para mi problema específico fue:

$('select').change(function(){ 

    td = $(this).parent('td'); 

    col = $(td).parent().children().index(td); 

}); 
+0

Documentación: http://api.jquery.com/index/ – singles

Respuesta

7

Usted puede utilizar la función index().

col = $(this).parent().children().index($(this)); 
+0

de Acción de Gracias veo bastante bien, pero yo he intentado un par de variantes en esto, y todos son regresando -1. El único problema que puedo pensar es que la tabla se divide en y pero alterando: .children ('tbody'). no ayuda? – null

+0

Sí, tienes razón, por supuesto que necesitas a los hijos del padre ('TR', no' TBODY' o 'TABLE') ... ver actualizado – ReFocus

+0

Oh y acabo de notar que el otro problema era que el 'esto' en mi pregunta fue seleccionar, por lo que la solución es una pequeña variante. Gracias por la ayuda :) – null

5

La propiedad cellIndex devuelve la posición de una célula en la colección de células de una fila de tabla. w3schools

td.cellIndex 

demo

+0

'cellIndex' está roto para las tablas que usan' colspan'. Esto significa que 'cellIndex' puede devolver diferentes valores para que las celdas estén una encima de la otra. – ceving

Cuestiones relacionadas