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
...
getElementsBySelector [不推荐]
getElementsBySelector(element, selector...) -> [HTMLElement...]
根据一个或多个指定的 CSS 选择器(字符串),在 element 中查找匹配其中任何一个选择器的后代节点, 并返回一个数组,数组中的元素已经过 扩展。
在 Prototype 1.6 中,不推荐使用 Element#getElementsBySelector 方法,建议使用更简洁的 Element#select。
这个方法类似于 $$(),但是它可以在一个元素的上下文中使用,而不是针对整篇文档。 它们支持的 CSS 语法相同,具体的细节请参考 $$() 的文档。
样例
<ul id="fruits">
<li id="apples">...
getElementsByClassName [不推荐]
getElementsByClassName(element, className) -> [HTMLElement...]
查询 element 下所有具有参数 className 指定的 CSS 类名称的后代节点,并返回一个数组, 数组中的元素已经过 扩展。
在 Prototype 1.6 中,不建议使用 document.getElementsByClassName,因为这个函数的原始实现是返回一个 NodeList,而不是一个 Array。在 v1.6 中,请使用 $$ 或 Element#select 代替。
返回的数组成员按照元素在页面中的顺序进行排列(例如:索引 0 表示 element 的后代节点中具有 CSS 类名称 className 的第一个元素)。
样例
<ul id="fruits"...
getDimensions
getDimensions(element) -> {height: Number, width: Number}
获取 element 的 width 和 height,并返回一个对象,包括宽高的名值对。
通过内联的样式规则或者 CSS 样式表将元素的显示设置为 none 后,这个方法仍然返回元素本身所具有的尺寸,而不是返回 0。
为避免重复调用这个方法,可以考虑使用一个变量缓存返回的值,就像下面的示例一样。如果只是需要 element 的宽度或者高度,請使用 Element.getWidth 或 Element.getHeight 方法。
注意:所有返回值都仅有数字,单位为像素。
样例
<div id="rectangle" style="font-size: 10px; width: 20em; height: 10em"></div&...
firstDescendant [1.5.1]
firstDescendant(element) -> HTMLElement
返回第一个子元素。与 DOM 属性 firstChild 不同,firstChild 返回任意类型的节点(在很多情形下, 经常是一个空白文本节点[译注:这种情况在 Firefox 中较为常见])。
样例
<div id="australopithecus">
<div id="homo-erectus"><!--Latin is super -->
<div id="homo-neanderthalensis"></div>
<div id="homo-sapiens"></div>
</div>
</div>
$('australopithecus').firstDescendant();
// -> div#homo-herec...
empty
empty(element) -> Boolean
测试 element 是否为空(例如仅包含空白)。
样例
<div id="wallet"> </div>
<div id="cart">full!</div>
$('wallet').empty();
// -> true
$('cart').empty();
// -> false
down
down(element[, cssRule][, index = 0]) -> HTMLElement | undefined
返回 element 下与 cssRule 相匹配的第一个后代节点(如果指定 index 参数,则返回第 index 个)。如果未指定 cssRule,则默认匹配所有后代节点。如果没有符合条件的后代节点,返回 undefined。
Element.down 方法是 Prototype 最基本的 DOM 遍历工具之一(其余的还有 Element.up、 Element.next 和 Element.previous,这些方法体现了 Prototype 良好的编程风格)。它允许基于索引和/或 CSS 规则对元素的后代节点进行精确选择。
因为它忽略了文本节点(仅返回元素),所以你不必担心空白节点。
还有一个额外的惊喜,所有返回的元素都已...
descendants
descendants(element) -> [HTMLElement...]
返回 element 的所有后代节点,结果为一个数组,数组元素已经过 扩展。
注意:所有 Prototype 的 DOM 扩展方法均忽略文本节点,仅返回元素节点。
样例
<div id="australopithecus">
<div id="homo-herectus">
<div id="homo-neanderthalensis"></div>
<div id="homo-sapiens"></div>
</div>
</div>
$('australopithecus').descendants();
// -> [div#homo-herectus, div#homo-neanderthalensis, div#homo-sapiens]
$('homo-sapiens').descendants();...