descendantOf
descendantOf(element, ancestor) -> Boolean
判断 element 是否是参数 ancestor 指定元素的后代节点。
因为 Element.descendantOf 内部对 ancestor 应用了 $(),所以参数 ancestor 既可以是元素,也可以是元素的 ID。
样例
<div id="australopithecus">
<div id="homo-herectus">
<div id="homo-sapiens"></div>
</div>
</div>
$('homo-sapiens').descendantOf('australopithecus');
// -> true
$('homo-herectus').descendantOf('homo-sapiens');
// -> false
...
cumulativeOffset [1.6]
cumulativeOffset(element) -> [Number, Number] 或 { left: Number, top: Number }
返回 element 相对于页面左上角的坐标。
译注:假定返回值为 offset,则 X 轴坐标可通过 offset[0] 获取,也可以通过 offset.left 获取,Y 轴坐标可通过 offset[1] 获取,也可通过 offset.top 获取。
累加元素及它的所有先代节点的 offsetLeft 和 offsetTop。
注意:所有返回值都仅有数字,单位为像素。
...
clonePosition [1.6]
clonePosition(element, source[, options]) -> HTMLElement
从 source 中复制参数 options 指定的位置和/或尺寸的相关信息到 element。
注意:该方法根据 CSS containing block 的规则判定元素的位置信息是否相同,调用该方法后,target 和 source 的位置信息按照上述规则严格匹配。
选项
名称
默认值
描述
setLeft
true
克隆 source 的 CSS 属性 left 到 element。
setTop
true
克隆 source ...
cleanWhitespace
cleanWhitespace(element) -> HTMLElement
移除元素中所有仅包含空白的文本节点,返回移除空白文本节点后的元素。
译注:所谓空白文本节点,是根据 XML 中的概念得来的,例如,有以下 HTML 代码:
<div>
<p>第一段</p>
</div>
<div> 的子节点(element.childNodes)包括 <p> 和空白文本节点(对于空白文本节点,各种浏览器的处理方式不一样), 这些空白文本节点有时对处理节点的顺序关系会造成影响,如上述 HTML 代码中我们通常认为 <p> 没有前导和后继兄弟节点, 但因为空白文本节点的干扰,程序可能会认为 <p> 有一个前导兄弟节点和一个后继兄...
classNames [不推荐]
classNames(element) -> Enumerable
返回一个新的 ClassNames 的实例,该实例是一个 Enumerable 对象,用于读写元素的 CSS 类名称。
Element#classNames 已被抛弃。请使用 Element#addClassName、 Element#removeClassName 和 Element#hasClassName 代替。
如果你需要访问 CSS 类名称,并返回一个数组,试试用 $w(element.className)。
事实上,这意味着你可以通过一个 Enumerable 访问元素的 CSS 类名称列表,而不像原生的 className 属性仅只是一个字符串。
在这个方法结束前,返回的 Enumerable 对象已经被扩展了一系列用于处理 CSS 类名的方法:set(className)、 ad...
childElements(element) -> [HTMLElement...]
返回元素的所有子元素,结果为一个数组,数组元素已经过 扩展。
返回的数组成员按照元素在页面中的顺序进行排列(例如:索引 0 表示最顶部的子元素)。
注意:所有 Prototype 的 DOM 扩展方法均忽略文本节点,仅返回元素节点。
样例
<div id="australopithecus">
<div id="homo-erectus">
<div id="homo-neanderthalensis"></div>
<div id="homo-sapiens"></div>
</div>
</div>
$('australopithecus').childElements();
// -> [div#homo-erectus]
$('homo-erectus...
ancestors(element) -> [HTMLElement...]
返回 element 的所有先代节点(父节点、父节点的父节点...一直到最顶层节点),结果为一个数组,数组元素已经过 扩展。
返回数组的第一个元素是 element 的直接先代节点(即 parentNode),第二个元素是它的祖父节点, 依此类推,直到 html 元素。html 总是数组的最后一个成员,除非你显式查找它的先代节点。 但是你不愿意这么做,不是吗?
注意:所有 Prototype 的 DOM 扩展方法均忽略文本节点,仅返回元素节点。
样例
<html>
[…]
<body>
<div id="father">
<div id="kid"> </div>
</div>
</bo...
(element, className) -> HTMLElement
增加一个 CSS 类到 element 中。
样例
<div id="mutsu" class="apple fruit"></div>
$('mutsu').addClassName('food')
$('mutsu').className
// -> 'apple fruit food'
$('mutsu').classNames()
// -> ['apple', 'fruit', 'food']
absolutize(element) -> HTMLElement
转换元素的定位方式为绝对定位,并且不改变元素在页面中的位置。
译注:该方法使用代码 element.style.position = 'absolute' 改变定位方式。在改变定位方式后, 元素左上角的坐标仍会保持原来的位置,如果元素未设置初始的 width 和 height 属性,则调用该方法后, 元素的宽度和高度会改变为系统预设值。
Element.Methods 是一个针对 DOM 元素的混入对象。这个对象所具有的方法不能直接访问,必须通过 $() 工具函数或 Element 对象进行访问。
样例
// 隐藏元素
$(element).hide();
//返回一个 Enumerable:包含 ID 为 "article" 的元素的所有后代节点
$('articles').descendants();
方法
absolutize
1.6
absolutize(element) -> HTMLElement
转换元素的定位方式为绝对定位,并且不改变元素在页面中的位置。
译注:该方法使用代码 element.style.position = 'absolute' 改变定位方式。在改变定位方式后, 元素左上角的坐标仍会保持原来的位置,如果元素未设置初始的 width 和 height 属性,则调用...
addMethods([methods])
addMethods(tagName, methods)第一个参数的类型是一个 hash 列表,用于对 Element 对象进行扩展,hash 列表的名值对将转换为 扩展后 的元素的方法或属性。
第二种用法是扩展一个指定的 HTML 元素,tagName 指定 HTML 元素标签。
Element.addMethods 使你能够混入自己的方法到 Element 对象。混入后,可以在 $() 工具函数返回的 已扩展 的元素上使用你的方法,或者直接作为 Element 的方法,如下面的例子:
$(element).myOwnMethod([args...]); 注意,也可以写成下面的方式:
Element.myOwnMethod(element|id[, args...]); 为增加新的方法,只需简单的为 Element.addMethods 提供一个...
Class#addMethods 方法应用于通过 Class.create 方法创建的类上。 它可以为类增加一个新的实例方法,或者为已定义的类重写已有的方法。
新加入的方法会在类的继承层次中传播。如果该类具有子类,那么子类将会继承这个新的方法——甚至可以用 $super 调用这个方法。新的方法也会传递到类及其子类的实例中。
译注:关于 $super 关键字,请看这里。
样例
var Animal = Class.create({
initialize: function(name, sound) {
this.name = name;
this.sound = sound;
},
speak: function() {
alert(this.name + " says: " + this.sound + "!");
}
});
// Animal 的子类
var Snake = Class...