$関数
【抜粋】 function $() { var elements = new Array(); for (var i = 0; i < arguments.length; i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element); if (arguments.length == 1) return element; elements.push(element); } return elements; }
「ECMA-262 3rd Edition 7.6 識別子」によれば「ドル記号は機械的に生成されるコード中のみの使用を意図される。」とのことです。プログラマが識別子に$を使うのは構わないけど、イレギュラーだよ、ということでしょうか。「機械的に生成されるコード」の例としては、RegExp.$1とかがそうですね。
$関数は可変個引数を取ります。typeof演算子で文字列かどうかを判定します。文字列の場合、それをIDとみなして対応要素を取得します。文字列以外であればそのまま扱います。引数が1個ならそのまま、複数なら配列に格納して返却します。pushメソッドはArrayクラスの既存メソッドです。配列の最後尾に要素を追加します。
要素をそのまま返すというのは、ID、要素どちらでも扱える関数を作成する場合に便利です。
【例】 <html> <head> <title></title> <script language="javascript" src="prototype.js" charset="utf-8"></script> <script language="javascript"> <!-- function test(){ $("test1").innerHTML = "壱"; //取得済みの要素オブジェクトも引数にできる。 var elem = document.getElementById("test2"); $(elem).innerHTML = "弐"; //引数は複数可。返却値は要素オブジェクトの配列 var ary = $("test1", "test2"); ary[0].style.backgroundColor = "yellow"; ary[1].style.backgroundColor = "blue"; } //--> </script> </head> <body> <div id="test1">-</div> <div id="test2">-</div> <button onclick="test();">TEST</button> </body> </html>