#jquery #getelementbyid
#jquery #getelementbyid
Вопрос:
У меня есть функция взаимодействия, которая присваивает идентификаторы. т.е. как
$('#mycooldiv' idNumber).text();
Мне интересно, как я могу это принять '#mycooldiv' idNumber
и использовать в
var div = document.getElementById('#mycooldiv' idNumber);
— потому что позже не работает?
Я тоже пробовал
var elem = $('#mycooldiv' idNumber);
var div = document.getElementById(elem);
и это тоже не удается?
Комментарии:
1. если вы используете jquery, какова цель использования document.getElementById.
var elem = $('#mycooldiv' idNumber);
иvar div = document.getElementById('mycooldiv' idNumber);
оба они одинаковы2. Нет — это не так. Потому что некоторый кроссбраузерный код лучше размещать БЕЗ использования jQuery. Почему вы всегда возвращаетесь к решению jQuery? Иногда решение jQuery не всегда является лучшим — отсюда и причина вопроса.
3. я имею в виду, если вы используете jQuery, не пытайтесь использовать оба. я уже упоминал оба способа выполнения этой задачи в своем предыдущем комментарии
Ответ №1:
document.getElementById
просто нужен идентификатор, #
он не нужен.
var div = document.getElementById('mycooldiv' idNumber);
Комментарии:
1. пожалуйста, скажите мне, что это не так. хорошо, я в шоке от смущения 🙂
2. Это так, извините. Селекторы jQuery основаны на селекторах CSS, поэтому
#
префикс означает идентификатор,.
префикс означает класс, а отсутствие префикса означает имя тега элемента (чтобы назвать только три простейших варианта).
Ответ №2:
var elem = $('#mycooldiv' idNumber);
var div = elem[0];
хотя, конечно, это менее эффективно, чем getElementById
прямой вызов, и теряет преимущество селекторов jQuery в том, что нет ошибки, когда элемент не существует.
Ответ №3:
вы действительно близки к решению. В jquery обозначение $() дает вам ваш элемент, так что в вашем случае это сработало бы:
var div = $('#mycooldiv' idNumber);
Это ваш желаемый элемент.
РЕДАКТИРОВАТЬ: если вы настаиваете на использовании document.getElementById, вы должны написать:
var div = document.getElementById('mycoodiv' idNumber);
обозначение # используется только с jquery и обозначает идентификатор в css-синтаксисе, который использует jQuery (и который намного более мощный и универсальный, чем document.getElementById).
Комментарии:
1. привет — спасибо за ответ, но это не то, что я ищу.