Как выбрать элемент в jQuery, используя переменную для идентификатора?
например, следующее выбирает деление с id= "2":
row = $("body").find("#2");
Как мне сделать что-то вроде этого:
row_id = 5;
row = $("body").find(row_id);
приведенный выше синтаксис приводит к ошибке. Я проверил документацию jQuery и ответы здесь без успеха.
6 ответов
row = $("body").find('#' + row_id);
более важно делать дополнительное тело.find не влияет на производительность. Правильный способ сделать это просто:
row = $('#' + row_id);
самый короткий путь будет такой:
$("#" + row_id)
ограничение поиска телом не имеет никакой пользы.
кроме того, вы должны рассмотреть возможность переименования id
s К чему-то более значимому (и HTML-совместимому в соответствии с ответом Паоло), особенно если у вас есть другой набор данных, который также должен быть назван.
делаешь $('body').find();
не требуется при поиске по ID; нет увеличения производительности.
обратите внимание, что наличие идентификатора, начинающегося с номера, -недопустимый HTML:
маркеры ID и NAME должны начинаться с буквы ([A-Za-z]) и могут сопровождаться любым количеством букв, цифр ([0-9]), дефисов ("-"), подчеркиваний ("_"), двоеточий ( " :") и периодов (".").
есть две проблемы с вашим кодом
- чтобы найти элемент по ID, вы должны префикс его с"#"
- вы пытаетесь передать число в функцию find, когда требуется строка (передача " # "+ 5 исправит это, так как сначала преобразует 5 в" 5")
Я мало знаю о jQuery, но попробуйте следующее:
row_id = "#5";
row = $("body").find(row_id);
Edit: конечно, если переменная является числом, вы должны добавить "#"
на фронт:
row_id = 5
row = $("body").find("#"+row_id);