jQuery - how can I find the element with a certain id?

I have a table and each of its td has a unique id that corresponds to some time intervals (0800 til 0830... 0830 til 0900 and so on).

I have an input text where the user will type the time intervals they want to block.

If they type an interval that doesn't exist in my table, in other words, if they type an interval that doesn't correspond to any of my td's id's, I want to show an alert saying something like this interval is not available for blocking.

But, I'm having difficulty to find this id.

I'm doing this:

    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);

But this verificaHorario is actually setting all my td's to this horaInicial id.

How can I find the id in my table and if it doesn't exist show some alert?


Solution 1:

If you're trying to find an element by id, you don't need to search the table only - it should be unique on the page, and so you should be able to use:

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

If you need to search only in the table for whatever reason, you can use:

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

Solution 2:

I don't know if this solves your problem but instead of:

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

you can just do:

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

Solution 3:

This

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

will find you the td that needs to be blocked.

Actually this will also do:

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

Testing for the size() of the wrapped set will answer your question regarding the existence of the id.

Solution 4:

This is one more option to find the element for above question

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

Solution 5:

As all html ids are unique in a valid html document why not search for the ID directly? If you're concerned if they type in an id that isn't a table then you can inspect the tag type that way?

Just an idea!

S