Есть ли какое-нибудь сокращение для JavaScript document.getElementById? Или я могу как-то его определить? Это повторяется снова и снова .
javascript
Фокс Уилсон
источник
источник
Ответы:
Здесь я использовал
$
, но вы можете использовать любое допустимое имя переменной.источник
$
, поздравляем с выбором этого тоже?"$
если вы их никогда не загружаете.var $ = document.getElementById.bind(document)
, ноbind
доступен не во всех браузерах. Возможно, это быстрее, потому что я использую только собственные методы. Просто хотел добавить это.Чтобы сохранить лишний символ, вы можете загрязнить прототип String следующим образом:
Он работает в некоторых браузерах, и вы можете получить доступ к элементам следующим образом:
Я выбрал название объекта почти случайно. Если вы действительно хотите использовать это сокращение, я бы предложил придумать что-нибудь более простое для набора.
источник
Вы можете легко создать стенографию самостоятельно:
источник
Быстрая альтернатива для внесения вклада:
Тогда просто сделайте:
Есть одна загвоздка: это не работает в браузерах, которые не позволяют расширять прототипы (например, IE6).
источник
prototype.js
выполняли то же самое.(Сокращение не только для получения элемента по идентификатору, но и для получения элемента по классу: P)
Я использую что-то вроде
Использование:
_(".test")
возвращает все элементы с именем классаtest
и_("#blah")
возвращает элемент с идентификаторомblah
.источник
document.querySelectorAll
вместо того, чтобы пытаться имитировать частьquerySelectorAll
метода в пользовательской функции.идентификаторы сохраняются в
window
.HTML
JS
то же самое, что писать:
Я не предлагаю использовать первый метод, так как это не обычная практика.
источник
<div id="location"></div>
и позвонитьwindow.location
не получится.источник
Здесь есть несколько хороших ответов, и некоторые из них танцуют вокруг синтаксиса, подобного jQuery, но ни один из них не упоминает фактическое использование jQuery. Если вы не против попробовать, попробуйте jQuery . Это позволяет вам очень легко выбирать элементы вот так ..
По ID :
По классу CSS :
По типу элемента :
источник
Встроенного нет.
Если вы не против загрязнения глобального пространства имен, почему бы и нет:
РЕДАКТИРОВАТЬ - я изменил имя функции на что-то необычное , но короткое и не противоречащее jQuery или чему-либо еще, в котором используется пустой
$
знак.источник
Да, он получает повторяющийся использовать ту же функцию в течение и через каждый раз с другим аргументом:
Так что хорошей вещью была бы функция, которая принимает все эти аргументы одновременно:
Тогда у вас будут ссылки на все ваши элементы, хранящиеся в одном объекте:
Но вам все равно придется перечислить все эти идентификаторы.
Вы можете упростить его еще больше, если хотите, чтобы все элементы имели идентификаторы:
Но было бы довольно дорого вызывать эту функцию, если у вас много элементов.
Итак, теоретически, если бы вы использовали
with
ключевое слово, вы могли бы написать такой код:Но я не хочу продвигать использование
with
. Наверное, есть способ лучше.источник
Ну, вы можете создать сокращенную функцию, вот что я делаю.
а затем, когда вы захотите это получить, вы просто сделаете
Кроме того, я обнаружил еще один полезный трюк: если вы хотите получить значение или innerHTML идентификатора элемента, вы можете создавать такие функции:
Надеюсь, вам понравится!
Я фактически сделал своего рода мини-библиотеку javascript, основанную на всей этой идее. Вот оно.
источник
Я часто использую:
Я думаю, это лучше, чем внешняя функция (например,
$()
илиbyId()
), потому что вы можете делать такие вещи, как это:Кстати, не используйте для этого jQuery, jQuery намного медленнее, чем
document.getElementById()
внешняя функция, например$()
илиbyId()
, или мой метод: http://jsperf.com/document-getelementbyid-vs-jquery/5источник
Если это на вашем собственном сайте, рассмотрите возможность использования библиотеки, такой как jQuery. чтобы дать вам эту и многие другие полезные сокращения, которые также абстрагируют различия браузеров. Лично, если бы я написал достаточно кода, чтобы меня беспокоили длинные рукописи, я бы включил jQuery.
В jQuery синтаксис будет
$("#someid")
. Если вам нужен фактический элемент DOM, а не оболочка jQuery, это возможно$("#someid")[0]
, но вы, скорее всего, сможете делать все, что вам нужно, с оболочкой jQuery.Или, если вы используете это в консоли разработчика браузера, изучите их встроенные утилиты. Как уже упоминалось, консоль Chrome JavaScript включает в себя
$("someid")
метод, и вы также можете щелкнуть элемент в представлении «Элементы» инструментов разработчика, а затем ссылаться на него с$0
консоли. Выбранный ранее элемент становится$1
и так далее.источник
Если единственная проблема здесь - это ввод текста, возможно, вам стоит просто обзавестись редактором JavaScript с intellisense.
Если цель состоит в том, чтобы получить более короткий код, вы можете рассмотреть библиотеку JavaScript, такую как jQuery, или вы можете просто написать свои собственные сокращенные функции, например:
Раньше я делал это для лучшей производительности. В прошлом году я узнал, что с помощью методов сжатия сервер делает это автоматически за вас, поэтому мой метод сокращения фактически утяжелил мой код. Теперь я просто доволен вводом всего document.getElementById.
источник
Если вы запрашиваете сокращенную функцию ...
или
источник
Стрелочные функции делают короче.
источник
id
аргумент.оберните document.querySelectorAll ... jquery, например select
источник
$('#myId')
он обычно должен возвращать этот HTMLElement, потому что вы, надеюсь, назначили этот идентификатор ровно один раз. Но если вы будете использовать его с запросами, которые могут соответствовать нескольким элементам, это станет громоздким.Что ж, если идентификатор элемента не конкурирует с какими-либо свойствами глобального объекта, вам не нужно использовать какую-либо функцию.
edit: Но вы не хотите использовать эту «функцию».
источник
Еще одна обертка:
Это на случай, если вы не хотите использовать немыслимое , см. Выше.
источник
Вы можете использовать функцию-оболочку, например:
Или
Присвойте
document.getElementById
переменной, связав ее сdocument
объектом.Примечание: Во втором подходе Если вы не связываться
document.getElementById
сdocument
вами получите сообщение об ошибке:Что
Function.bind
делает, так это создание новой функции сthis
ключевым словом, установленным на значение, которое вы указываете в качестве аргументаFunction.bind
.Прочтите документацию для Function.bind
источник
Я написал это вчера и нашел его весьма полезным.
Вот как вы это используете.
источник