2009-03-12 20 views
31

Tengo una tabla y cada uno de sus td tiene una identificación única que corresponde a algunos intervalos de tiempo (0800 hasta 0830 ... 0830 hasta 0900 y así sucesivamente). Y tengo un texto de entrada donde el usuario tecleará los intervalos de tiempo que quiere bloquear. Y si escriben un intervalo que no existe en mi tabla, en otras palabras, si escriben un intervalo que no corresponde a ninguna de las identificaciones de mi td, quiero mostrar una alerta que diga algo así como "este intervalo no es disponible para bloquear ".jQuery: ¿cómo puedo encontrar el elemento con cierta identificación?

Pero estoy teniendo dificultades para encontrar esta identificación. que estoy haciendo esto:

var horaInicial = $("#horaInicial").val().split(':')[0] + $("#horaInicial").val().split(':')[1]; // this is remover the ":" from a formatted hour 

var verificaHorario = $("#tbIntervalos").find("td").attr("id", horaInicial); 

Pero esta "verificaHorario" es en realidad el establecimiento de todos mis td a este id horaInicial.

Entonces, ¿cómo puedo encontrar una identificación en mi tabla y si no existe mostrar alguna alerta.

gracias !!

Respuesta

63

Si usted está tratando de encontrar un elemento de identificación, no es necesario para buscar en la tabla sólo - que debe ser único en la página, y lo que debería ser capaz de utilizar:

var verificaHorario = $('#' + horaInicial); 

Si es necesario buscar sólo en la tabla por cualquier razón, puede utilizar:

var verificaHorario = $("#tbIntervalos").find("td#" + horaInicial) 
+0

Para mí el camino no funciona, pero el ejemplo de trabajo es: * $ ("# tbIntervalos"). Find ("td #" + horaInicial) * – Andrew

3

Como todos los id. Html son únicos en un documento html válido, ¿por qué no buscar la ID directamente? Si le preocupa que escriba una identificación que no es una tabla, entonces puede inspeccionar el tipo de etiqueta de esa manera.

¡Solo una idea!

S

7

Este

var verificaHorario = $("#tbIntervalos").find("#" + horaInicial); 

va a encontrar el TD que necesita ser bloqueado.

En realidad esto también lo harán:

var verificaHorario = $("#" + horaInicial); 

Las pruebas para el tamaño() del conjunto envuelto responder a su pregunta sobre la existencia del ello.

+0

cuál tiene mejor rendimiento? – JCarlos

18

no sé si esto resuelve su problema, pero en lugar de:

$("#tbIntervalos").find("td").attr("id", horaInicial); 

sólo puede hacer:

$("#tbIntervalos td#" + horaInicial); 
6

Esta es una opción más para encontrar el elemento para la pregunta anterior

$("#tbIntervalos").find('td[id="'+horaInicial+'"]')

Cuestiones relacionadas