observe
observe(element, eventName, handler[, useCapture = false]) -> HTMLElement
为 element 注册一个事件处理程序,返回元素本身。
这是对 Event.observe 的简单代理,更深入的信息请参考 Event.observe。
样例
$(element).observe('click', function(event){
alert(Event.element(event).innerHTML);
});
// -> HTMLElement(当元素被点击时,将弹出一个提示框,显示元素内的 HTML 文本)。
...
nextSiblings
nextSiblings(element) -> [HTMLElement...]
返回 element 的所有后继兄弟节点,结果为一个数组,数组元素已经过 扩展。
如果两个元素有相同的父节点,则认为它们是兄弟节点,因此在样例中,head 和 body 是兄弟节点(它们的父节点都是 html)。后继兄弟节点可简单的看作文档中跟在 elemnet 后的兄弟节点。
返回的数组成员按照元素在页面中的顺序进行排列(例如:索引 0 表示 element 正下方的第一个兄弟节点)。
注意:所有 Prototype 的 DOM 扩展方法均忽略文本节点,仅返回元素节点。
样例
<ul>
<li id="golden-delicious">Golden Delicious</li>
<li id="...
next
next(element[, cssRule][, index = 0]) -> HTMLElement | undefined
返回匹配 cssRule 指定规则的 element 的下一个兄弟节点(如果指定 index 参数,则返回第 index 个)。如果未指定 cssRule 参数,则默认匹配所有后继兄弟节点。 如果没有符合条件的节点,返回 undefined。
Element.next 方法是 Prototype 最基本的 DOM 遍历工具之一(其余的还有 Element.up、 Element.down 和 Element.previous,这些方法体现了 Prototype 良好的编程风格)。它允许基于索引和/或 CSS 规则对元素的后继兄弟节点进行精确选择。 (注意:如果两个元素有相同的父节点,则认为它们是兄弟节点,因此在样例中,head 和 body 是...
match
match(element, selector) -> Boolean
判断 element 是否匹配参数 selector 指定的 CSS 选择器。
样例
<ul id="fruits">
<li id="apples">
<ul>
<li id="golden-delicious">Golden Delicious</li>
<li id="mutsu" class="yummy">Mutsu</li>
<li id="mcintosh" class="yummy">McIntosh</li>
<li id="ida-red">Ida Red</li>
</ul>
</li>
</ul>
$('fruits').match('ul');
// -> true
$('mcintosh').mat...
makePositioned
makePositioned(element) -> HTMLElement
该方法使你能够方便的创建 CSS 容器块(block),如果 element 的 CSS position 属性初始值为 'static' 或 undefined,它将设置 position 属性为 'relative'。该方法返回元素本身。
为恢复 element 原始的 CSS 位置,请使用 Element.undoPositioned。
样例
考虑一下以下的情形:
<p>lorem […]</p>
<div id="container">
<div id="element" style="position: absolute; top: 20px; left: 20px;"></div>
</div>
让 div#element 的位置 相对 于它的父节点:$('container...
makeClipping
makeClipping(element) -> HTMLElement
通过将超出元素边界的内容设置为 'hidden',来虚拟仅有少数浏览器支持的 CSS clip 属性。返回 element。
为撤消剪切,请使用 Element.undoClipping。
可见区域视 element 的宽和高而定。
样例
<div id="framer">
<img src="/assets/2007/1/14/chairs.jpg" alt="example" />
</div>
$('framer').makeClipping().setStyle({width: '100px', height: '100px'});
// -> HTMLElement
点我测试一下
var Example = {};
Example.clip = function(){
$(...
inspect
inspect(element) -> String
返回 element 的字符描述形式,该方法主要用于调试。
关于 inspect 的更详细的信息,请查看 Object.inspect。
<ul>
<li id="golden-delicious">Golden Delicious</li>
<li id="mutsu" class="yummy apple">Mutsu</li>
<li id="mcintosh" class="yummy">McIntosh</li>
<li></li>
</ul>
$('golden-delicious').inspect();
// -> '<li id="golden-delicious">'
$('mutsu').inspect();
// -> '<li id="mutsu" class=&qu...
insert [1.6]
insert(element, { position: content }) -> HTMLElement
insert(element, content) -> HTMLElement
根据第二个参数 position 属性指定的位置,插入 content 到元素的前面、后面、顶部或底部。 如果第二个参数仅包括 content,则将 content 追加到 element 中。
译注:position 取值为:before、after、top 或 bottom。
可插入的内容为以下几种类型:文本、HTML、DOM 元素以及具有 toHTML 或 toElement 方法的任何对象。
注意:如果插入的 HTML 包含 <script> 标签,插入后将会自动运行标签中所包含的 Javascript 代码(插入 HTML 时,insert...
immediateDescendants [deprecated]
immediateDescendants(element) -> [HTMLElement...]
获取元素的直接后代(即子元素),返回一个数组,数组中的元素已经过 扩展。
在 Prototype 1.6 中,不推荐使用 Element#immediateDescendants,建议采用更友好的 Element#childElements 方法。
返回的数组成员按照元素在页面中的顺序进行排列(例如:索引 0 表示最顶部的子元素)。
注意:所有 Prototype 的 DOM 扩展方法均忽略文本节点,仅返回元素节点。
样例
<div id="australopithecus">
<div id="homo-erectus">
<div id=&qu...
identify [1.6]
identify(element) -> id
如果 element 存在 id 属性,则返回 id 属性值,否则自动为元素生成一个唯一的 id,并返回该 id 值。
样例
初始的 HTML
<ul>
<li id="apple">apple</li>
<li>orange</li>
</ul>
JavaScript
$('apple').identify();
// -> 'apple'
$('apple').next().identify();
// -> 'anonymous_element_1'
最终的 HTML
<ul>
<li id="apple">apple</li>
<li id="anonymous_element_1">orange</li>
</ul>
...
hide
hide(element) -> HTMLElement
将 element 隐藏,并返回该元素。
样例
<div id="error-message"></div>
$('error-message').hide();
// -> 返回 HTMLElement (并且隐藏 div#error-message)
向后兼容性变更
在 Prototype 的先前版本中,可以传递任意数目的元素到 Element.toggle、Element.show 和 Element.hide 中,但在 1.5 版之后,这不再被支持。
但是你可以通过 Enumerables 实现类似的效果:
['content', 'navigation', 'footer'].each(Element.hide);
// -> ['content', 'navigation', 'footer']
// 并隐藏 #content, #navigation 和 #footer。
还有更好的方法:...
hasClassName
hasClassName(element, className) -> Boolean
判断 element 是否包含参数 className 指定的 CSS 类名称。
样例
<div id="mutsu" class="apple fruit food"></div>
$('mutsu').hasClassName('fruit');
// -> true
$('mutsu').hasClassName('vegetable');
// -> false
getWidth
getWidth(element) -> Number
获取 element 的宽度。
通过内联的样式规则或者 CSS 样式表将元素的显示设置为 none 后,这个方法仍然返回元素本身所具有的尺寸,而不是返回 0。
从运行效率方面考虑,如果需要同时查询元素的高度和宽度,建议使用 Element.getDimensions 代替。
注意:所有返回值都仅有数字,单位为像素。
样例
<div id="rectangle" style="font-size: 10px; width: 20em; height: 10em"></div>
$('rectangle').getWidth();
// -> 200
...
getStyle
getStyle(element, property) -> String | null
返回 element 的指定 CSS 属性值。property 可以用标准的 CSS 名称指定,也可以使用 camelized 命名方式指定(译注:例如 CSS 属性 border-width 可以用 border-width 指代,也可用 borderWidth 指代)。
译注:其实该方法等同于 DOM 中 element.style.xxx 系列属性。
不论元素应用内联 CSS 样式,还是应用样式表中指定的样式,该方法均能查询到元素相应的 CSS 属性。对于样式属性 float、 opacity(返回值界于 0 和 1 之间,0 表示完全透明,1 表示完全不透明)、位置属性(left、 top、right 和 bottom)以及隐藏元素的尺寸(width 或 height), 该...
getOffsetParent [Version 1.6]
getOffsetParent(element) -> HTMLElement
返回 element 的容器块(Containing Block)(译注:距离元素最近的 CSS position 属性为 relative 或 absolute 的先代节点)节点,如果不存在这样一个节点,则返回 body 元素。
返回的元素是当前 element 的 CSS containing block。
getHeight
getHeight(element) -> Number
获取 element 的高度。
通过内联的样式规则或者 CSS 样式表将元素的显示设置为 none 后,这个方法仍然返回元素本身所具有的尺寸,而不是返回 0。
从运行效率方面考虑,如果需要同时查询元素的高度和宽度,建议使用 Element.getDimensions 代替。
注意:所有返回值都仅有数字,单位为像素。
样例
<div id="rectangle" style="font-size: 10px; width: 20em; height: 10em"></div>
$('rectangle').getHeight();
// -> 100
...