$

$(id | element) -> HTMLElement
$((id | element)...) -> [HTMLElement...]

Если передана строка (string), то возвращается элемент c указанным ID; иначе возвращается переданный элемент. Принимает произвольное число аргументов. Все элементы которые возвращаются этим методом поставляться уже с Prototype DOM расширениями.

Функция $ является краеугольным камнем Prototype. Она не только обеспечивает псевдоним для document.getElementById, она также позволяет вам передавать или IDs (strings) или DOM узлы в вашу функцию:


function foo(element) {
    element = $(element);
    /*  продолжение функции... */
}

Код написанный таким образом очень гибкий — вы можете передать ID элемента или сам элемент без всяких приведений типов.

Вызов функции с одним параметром возвращает один элемент, в то время как вызов с несколькими параметрами возвращает массив элементов ( и это работае рекурсивно: вы можете передать массив, который содержит массивы и тд). Поскольку эта функция зависит от getElementById, W3C спецификации: несуществующие ID будут возвращать null и ID которые дублируются на странице будут возвращать неправильный результат. Нельзя указывать один и тот же ID у разных элементов!

Эта функция также расширяет каждый возвращенный элемент средствами Element.extend - это значит вы можете использовать Prototype DOM расширения. В следующем коде две строки кода эквиваленты. Но все же, код во второй строке выглядит более объектно-ориентированным:


// не похоже на ООП...
Element.hide('itemId');
// Выглядит по лучше, благодаря гарантированному расширению
$('itemId').hide();

Даже при использовании итераторов, использование функции $ делает код более элегантным, более сжатым и конечно более эффективным:


['item1', 'item2', 'item3'].each(Element.hide);
// Лучше делать так:
$('item1', 'item2', 'item3').invoke('hide');

Читайте Как Prototype расширяет DOM чтобы узнать больше.

miele сушильная машина . автосалон центральный отзывы