Сделать псевдоним для document.getElementById в Javascript - PullRequest
9 голосов
/ 05 июня 2009

Как мне псевдоним функции "document.getElementById" Я видел, как это сделано, используя $

Спасибо

Ответы [ 7 ]

13 голосов
/ 25 сентября 2013
var $ = document.getElemenyById.bind( document );
10 голосов
/ 21 июня 2010

Возможно самый простой / короткий путь:

function $(id) { return document.getElementById(id); };
3 голосов
/ 05 июня 2009

Вот что я использую в своей собственной библиотеке. 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");

Вы можете создать псевдоним для элемента окна верхнего уровня.

2 голосов
/ 09 декабря 2016

Новые функции, представленные в ES6, позволяют нам улучшить ответ Криса Ллойда, упрощая:

function $(id) { return document.getElementById(id); };

до:

const $ = id=> document.getElementById(id);
0 голосов
/ 05 июля 2010

connect-js Facebook выполняет следующие действия в src / core / prelude.js :

if (!window.FB) {
  FB = {
    // ...
    $: function(id) {
      return document.getElementById(id);
    }
    // ...
  }
}

Затем, чтобы использовать это, они делают:

FB.$('name-of-id');

Исходный блок создает глобальный объект FB. Они используют этот объект, FB, в качестве пространства имен и определяют все свои объекты, свойства и функции в нем. Таким образом, он будет работать с другим кодом JavaScript, если этот другой код не использует глобальный объект FB.

0 голосов
/ 06 июня 2009
function $( s ) {
    return document.getElementById( s ) ? document.getElementById( s ) : "";
}

$( "myId" );

Предполагается, что вы хотите использовать только функцию доллара (селектор), чтобы получить идентификатор. Я не проверял это, но оно должно работать.

В последний раз, когда я смотрел на ядро ​​jQuery, в качестве аргумента использовалась строка, а затем использовалось регулярное выражение для определения типа селектора.

0 голосов
/ 05 июня 2009

Когда вы видели функцию $ (), это была, вероятно, какая-то библиотека, такая как jQuery или Prototype. Функция $ не является псевдонимом для document.getElementById, но является оберткой, расширяющей функциональность функции.

Чтобы создать свою собственную оболочку, вы можете написать функцию "псевдоним":

var alias = document.getElemenyById;

или

function alias(id) { return document.getElementById(id); }

Но на самом деле я бы использовал одну из доступных библиотек, такую ​​как jQuery или Prototype.

...