How do I select an element in jQuery by using a variable for the ID?
For example, the following selects a division with id="2":
row = $("body").find("#2");
How do I do something like this:
row_id = 5;
row = $("body").find(row_id);
The above syntax produces an error. I checked the jQuery documentation and answers here without success.
Solution 1:
row = $("body").find('#' + row_id);
More importantly doing the additional body.find has no impact on performance. The proper way to do this is simply:
row = $('#' + row_id);
Solution 2:
The shortest way would be:
$("#" + row_id)
Limiting the search to the body doesn't have any benefit.
Also, you should consider renaming your id
s to something more meaningful (and HTML compliant as per Paolo's answer), especially if you have another set of data that needs to be named as well.
Solution 3:
Doing $('body').find();
is not necessary when looking up by ID; there is no performance gain.
Please also note that having an ID that starts with a number is not valid HTML:
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
Solution 4:
You can do it like this:
row_id = 5;
row = $("body").find('#'+row_id);
Solution 5:
There are two problems with your code
- To find an element by ID you must prefix it with a "#"
- You are attempting to pass a Number to the find function when a String is required (passing "#" + 5 would fix this as it would convert the 5 to a "5" first)