Как выбрать элемент в jQuery с помощью переменной для ID?

Например, следующее выбирает деление с id = "2":

row = $("body").find("#2");

Как мне сделать что-то вроде этого:

row_id = 5;
row = $("body").find(row_id);

Вышеприведенный синтаксис вызывает ошибку. Я проверил документацию jQuery и ответил здесь без успеха.

Ответ 1

row = $("body").find('#' + row_id);

Более важно сделать дополнительный body.find не влияет на производительность. Правильный способ сделать это просто:

row = $('#' + row_id);

Ответ 2

Самый короткий путь:

$("#" + row_id)

Ограничение поиска в теле не имеет никакой пользы.

Кроме того, вам следует рассмотреть возможность переименования вашего id в нечто более значимое (и совместимое с HTML в соответствии с ответом Паоло), особенно если у вас есть другой набор данных, которые также должны быть названы.

Ответ 3

Выполнение $('body').find(); не требуется при поиске по ID; нет увеличения производительности.

Также обратите внимание, что наличие идентификатора, начинающегося с номера, недействительный HTML:

Идентификаторы ID и NAME должны начинаться с буквы ([A-Za-z]), за которой может следовать любое количество букв, цифр ([0-9]), дефис ( "-" ), подчеркивание ( "_" ), двоеточие ( ":" ) и периоды ( "." ).

Ответ 4

Вы можете сделать это следующим образом:

row_id = 5;
row = $("body").find('#'+row_id);

Ответ 5

В вашем коде есть две проблемы.

  • Чтобы найти элемент по ID, вы должны префикс его с помощью "#"
  • Вы пытаетесь передать Number в функцию find, когда требуется строка (передача "#" + 5 исправит это, поскольку она сначала преобразует 5 в "5" ).

Ответ 6

Я не знаю много о jQuery, но попробуйте следующее:

row_id = "#5";
row = $("body").find(row_id);

Изменить: Конечно, если переменная является числом, вы должны добавить "#" в начало:

row_id = 5
row = $("body").find("#"+row_id);

Ответ 7

как вы можете добавить, например, переменную X в .cam_select?

Я пробовал это

 var email =  $('.cam_select'+x , 'option:selected').attr('email');

но я получаю неопределенный на электронную почту вар