$(id) → Element
$(id...) → [Element…]
prototype如果提供一个字符串,返回文档中的元素匹配的ID,否则返回传入的元素。
注意到在任意数量的参数。如果一个参数返回一个元素,否则返回一个数组元素。
由该函数返回的所有元素都是元素的实例方法“扩展” .
More Information
$函数原型的基石。它不仅提供了一个方便的别名document.getElementById,它也可以让你通过漠然的ID(字符串)或DOM节点引用到你的函数:
function foo(element) {
element = $(element);
// rest of the function...
}
这样写的代码是灵活 - 您可以通过它的元素或元素本身的ID,没有任何类型的嗅探。
只用一个参数调用它返回的元素,同时调用多个参数,返回一个数组元素(工作递归:如果你扭曲,你可以把它传递一个数组,包含了一些阵列,等等)。由于这是依赖ongetElementById,W3C规范适用于:不存在的ID将产生空的ID呈现在DOM中多次将产生不稳定的结果。如果你分配多个元素相同的ID,你这样做是错误 !
The function also extends every returned element with Element.extend
so you can use Prototype's DOM extensions on it. In the following code, the two lines are equivalent. However, the second one feels significantly more object-oriented:
// Note quite OOP-like...
Element.hide('itemId');
// A cleaner feel, thanks to guaranted extension
$('itemId').hide();
However, when using iterators, leveraging the $
function makes for more elegant, more concise, and also more efficient code:
['item1', 'item2', 'item3'].each(Element.hide);
// The better way:
$('item1', 'item2', 'item3').invoke('hide');
See How Prototype extends the DOM for more info.