Доллар function, $() в prototype
В основном, это простая ссылка на document.getElementById(), но несколько более расширенная чем просто ссылка. Ниже показан пример использования:
[cc lang="php"]
node = $(’elementID’);
// То же самое
node = document.getElementById(’elementID’);
// Так же можно получать не только один елемент
// В этом случае результат будет массивом DOM елементов
nodes = $(’firstDiv’, ’secondDiv’);
[/cc]
Prototype так же предлагает функцию, ее нет в ядре JavaScript, которая возвращается массив DOM елементов и как аргумент она принимает имя css класса (class name):
[cc lang="php"]
nodes = document.getElementByClassName(’myclass’);
[/cc]
Однако, я думаю использовать ее вы будете редко, так как Prototype предлагает более расширенную функцию двойной доллар, $$(). Эта фунция возвращает массив DOM елементов основанных на CSS селекторе (css selector). Таким образом код показанный выше можно записать так:
[cc lang="php"]
nodes = $$(’.myclass’);
[/cc]
Благодаря мощьности CSS селекторов (css selectors) вы можете парсить модель DOM по классам (class), ID, и родитель-наследник (parent-child) и предыдущий-следующий (previous-next) связям, гораздо проще чем при использовании XPath выражений. Вы можете получить доступ к элементу через сложную комбинацию селекторов:
[cc lang="php"]
nodes = $$(’body div#main ul li.last img > span.legend’);
[/cc]
И последний пример улучшения синтаксиса предлагаемого Prototype — это each array iterator, подобно как в PHP:
[cc lang="php"]
var vegetables = ['Carrots', 'Lettuce', 'Garlic'];
vegetables.each(function(food) { alert(’I love ‘ + food); });
[/cc]
Не забывайте подписывать на рассылку.
Дальше будет еще много интересного.

