Ответ 1
Возможно самый простой/короткий путь:
function $(id) { return document.getElementById(id); };
Как я могу использовать функцию "document.getElementById" Я видел это, используя $
Спасибо
Возможно самый простой/короткий путь:
function $(id) { return document.getElementById(id); };
var $ = document.getElemenyById.bind( document );
Здесь что-то я использую в своей собственной библиотеке. DOM
- это класс, а $
- это функция, которая представляет собой краткую реализацию функции getElementById
:
function DOM()
{
this.$ = function(elementIDs)
{
var el;
// If an array of element names is passed.
if (arguments.length > 1)
{
var elements = [];
var length = arguments.length;
for (var i = 0; i < length; i++)
{
// Call this function recursively for each passed parameter.
elements.push(this.$(arguments[i]));
}
return elements;
}
// If a single element name is passed.
if (typeof(elementIDs) == "string")
{
el = document.getElementById(elementIDs);
}
return el;
}
}
Использование:
var el = new DOM().$("elementID");
Вы можете использовать его в элементе окна верхнего уровня.
Новые функции, представленные в ES6, позволяют нам улучшить ответ Криса Ллойда, упрощая:
function $(id) { return document.getElementById(id); };
в
const $ = id=> document.getElementById(id);
function $( s ) {
return document.getElementById( s ) ? document.getElementById( s ) : "";
}
$( "myId" );
Предполагается, что вы хотите использовать функцию доллара (селектор) для получения идентификатора. Я не тестировал это, но он должен работать.
В прошлый раз, когда я смотрел на ядро jQuery, он принял строку в качестве аргумента, а затем использовал регулярное выражение для определения того, какой тип селектора был.
facebook connect-js делает следующее в src/core/prelude.js:
if (!window.FB) {
FB = {
// ...
$: function(id) {
return document.getElementById(id);
}
// ...
}
}
Затем, чтобы использовать его, выполните следующие действия:
FB.$('name-of-id');
Начальный блок создает глобальный объект FB. Они используют этот объект, FB, как пространство имен и определяют все свои объекты, свойства и функции внутри него. Таким образом, он будет работать с другим кодом JavaScript, если этот другой код не использует глобальный объект FB.
Когда вы видели функцию $(), это была, вероятно, некоторая библиотека, такая как jQuery или Prototype. Функция $не является псевдонимом для document.getElementById, но является оболочкой, расширяющей функциональность функции.
Чтобы создать свою собственную оболочку, вы можете написать функцию "alias":
var alias = document.getElemenyById;
или
function alias(id) { return document.getElementById(id); }
Но на самом деле я бы использовал одну из доступных библиотек, такую как jQuery или Prototype.