Фев
Как силами jquery получить id элемента
В одном из моих проектов мне понадобилось получит id элемента веб страницы при клике на него. Так как к сайту была подключена библиотека jquery, то я и решил получить ид с её помощью. Об этом и пойдёт разговор в данной заметке.
По вопросу как силами получить ид элемента веб страницы я нашёл несколько вариантов реализации. Самые мне понравившиеся я опишу ниже.
Для примеров работы кода я сделаю небольшой тестовый стенд. Это будет див c классом class="mytestbox1"
(номер в конце будет меняться от номера
варианта) и индентификатором с номером
каждого варианта, например для первого варианта реализации получения ид через jq id="111"
.
При клике по нашему диву будет выводиться через alert сообщение с номером id. И так приступим.
Вариант 1
Этот вариант на методе jquery attr()
. Напомню что attr()
, при его использование вернёт нам значение атрибута выбранного
объекта вебстраницы.
$(document).ready(function(){ $('.mytestbox1').click(function() { alert($(this).attr('id')); }); });
Вариант 2
Второй вариант основан на использовании селектора jquery this
. В использовании this
есть небольшой нюанс. Использую this
с
знаком $
мы получим элемент как бы обёрнутый в jquery, а в this
без $
мы получим DOM элемента. Для нашей задачи нам понадобится
DOM
$(document).ready(function(){ $('.mytestbox2').click(function() { alert(this.id); }); });
Вариант 3
Третий вариант основан на использовании event
. Event
это объект события. Все события, которые произошли
в браузере записываются в него. Это уже получается нативный js. Конструкция event.target
возвращает нам элемент по которому произошол
клик, а при добавлении к конструкции id
мы получаем идентификатор нужного нам элемента.
$(document).ready(function(){ $('.mytestbox3').click(function(event) { alert(event.target.id); }); });
Комментарии
Trioniki
26.04.2018 15:04 Ответить
Пишет "undefined" в алерте - почему не работает?
Trioniki
26.04.2018 15:05 Ответить
undefined - пишет в алерте
алексей григорьев
27.04.2018 22:36 Ответить
undefined это значит не найден элемент, проверьте правильность написания css селектора