M4mkin_pr0ger
@M4mkin_pr0ger
Хачу пырфоманс

Каким образом лучше обращаться к элементу по id?

Есть три варианта обращения:
1) По старинке
document.getElementById('КакойТоАйДи').метод;

2) Символьно-экономно
'use strict'; // Включаем прогрессивизм
let ID=t=>document.getElementById(t); // Декоратор дефолтного сатанинского синтаксиса
...
ID('КакойТоАйДи').метод; // собсна, обращение к элементу

3) Магическо-неявное
КакойТоАйДи.метод;

1-й Вариант порождает километры кода, но самый быстрый (но это не точно)
2-й Сильно сокращает кол-во символов в файле, но не известно, на сколько быстр
3-й Предельно минималистичный, но просто неявный (это кастомный объект? переменная?)
  • Вопрос задан
  • 224 просмотра
Решения вопроса 2
Stalker_RED
@Stalker_RED
const $ = selector => document.querySelectorAll(selector)
$('#hello .world').forEach(...)


Плюсы: коротко, работает не только с id но и с любыми css-селекторами
Минусы: может взорвать кому-то моск, потому что слишком похоже на jQuery :)
Но можно использовать другой символ

Часто бывает удобно сразу сконвертировать в массив
const $ = selector => Array.from(document.querySelectorAll(selector))
Ответ написан
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
2-й Сильно сокращает кол-во символов в файле, но не известно, на сколько быстр
Во-первых, если используется gzip, то разница в размере с первым вариантом незначительная. Во-вторых, сделайте бенчмарк и узнаете (спойлер алерт - это экономия на спичках).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
tundramani
@tundramani
если в документе такой id один то:
getElementById
или просто обращайся прямо:
id.remove()
браузер автоматически создает в глобальной области видимости переменную id

если таких id несколько то:
querySelectorAll( '#' + id)

и да, id может быть несколько - это не запрещено и иногда это удобно
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
05 нояб. 2024, в 11:03
15000 руб./за проект
05 нояб. 2024, в 11:00
15000 руб./за проект
05 нояб. 2024, в 10:55
1500 руб./за проект