hasAttribute [simulated]
hasAttribute(element, attribute) -> Boolean
为不存在该方法的浏览器(Internet Explorer 6 或 7)模拟规范中指定的 DOM 方法 hasAttribute。
样例
<a id="link" href="http://prototypejs.org">Prototype</a>
$('link').hasAttribute('href');
// -> true
...
writeAttribute [1.6]
writeAttribute(element, attribute[, value = true]) -> HTMLElement
writeAttribute(element, attributes) -> HTMLElement
新增、修改或移除指定的 element 属性。属性参数可以是一个 hash 对象,也可以是一个名/值对。
visible
visible(element) -> Boolean
返回 Boolean 值,指示 element 是否可见(即判断元素内联的 style 属性是否设置为 "display:none;")。
样例
<div id="visible"></div>
<div id="hidden" style="display:none;"></div>
$('visible').visible();
// -> true
$('hidden').visible();
// -> false
注意
该方法忽略 CSS 样式表对元素的影响,这不是 Prototype 的限制,而是 CSS 规则的限制。
译注:通过在 <style> 标签或外部样式表中定义 CSS 属性来隐藏元素,visible 方法将无法做出准确的判断(即该方法只关注内联的或...
viewportOffset [1.6]
viewportOffset(element) -> [Number, Number] 或 { left: Number, top: Number }
返回 element 相对于浏览器可视区域左上角的坐标值。(译注:坐标原点以浏览器当前可见的部分为基准, 意即当滚动条滚动后,坐标原点也随之改变,坐标原点在当前窗口中永远可见。)
译注:假定返回值为 offset,则 X 轴坐标可通过 offset[0] 获取,也可以通过 offset.left 获取,Y 轴坐标可通过 offset[1] 获取,也可通过 offset.top 获取。
注意:所有返回值都仅有数字,单位为像素。
...
update
update(element[, newContent]) -> HTMLElement
替换 element 的内容为参数 newContent 指定的内容,返回元素本身。
译注:该方法类似于 element.innerHTML = newContent。
newContent 可以是纯文本、HTML 片断或任意具有 toString() 方法的 JavaScript 对象。
如果 newContent 中包含 <script> 标签,更新后将会自动运行标签中所包含的 Javascript 代码(Element.update 方法内部调用了 String#evalScripts 方法)。
如果未提供参数,Element.update 将简单的清除 element 的内容。
注意:在 IE6 及以上版本中,该方法允许对与元素相关的表的内容进行无缝更新。
样例
<div id=&q...
up
up(element, [cssRule][, index = 0]) -> HTMLElement | undefined
返回 element 的与 cssRule 相匹配的第一个先代节点(如果指定 index 参数,则返回第 index 个)。如果未指定 cssRule,则默认匹配所有先代节点。如果没有符合条件的先代节点,返回 undefined。
Element.up 方法是 Prototype 最基本的 DOM 遍历工具之一(其余的还有 Element.down、 Element.next 和 Element.previous,这些方法体现了 Prototype 良好的编程风格)。它允许基于索引和/或 CSS 规则对元素的先代节点进行精确选择。
因为它忽略了文本节点(仅返回元素),所以你不必担心空白节点。
还有一个额外的惊喜,所有返回的元素都已经过...
undoPositioned
undoPositioned(element) -> HTMLElement
设置 element 返回到在元素上应用 Element.makePositioned 方法之前的状态,返回元素本身。
对于 element 内具有绝对定位属性的子元素,调用该方法后,它们定位的基准位置将会更改为 element 最近的 CSS position 属性为 'absolute'、'relative' 或 'fixed' 的那个先代节点。
样例
<p>lorem […]</p>
<div id="container">
<div id="element" style="position: absolute; top: 20px; left: 20px;"></div>
</div>
$('container').makePositioned();
// -> HTMLElem...
undoClipping
undoClipping(element) -> HTMLElement
设置 element 的 CSS overflow 属性,重置其值为应用 Element.makeClipping() 之前的值,返回元素本身。
样例
<div id="framer">
<img src="/assets/2007/1/14/chairs.jpg" alt="example" />
</div>
$('framer').undoClipping();
// -> HTMLElement(并恢复 CSS overflow 属性为初始值)
点我测试一下
var Example = {};
Example.clip = function(){
$('clipper').update('撤销!');
$('framer').makeClipping().setStyle({width: '100px', height: '100px...
toggleClassName
toggleClassName(element, className) -> HTMLElement
切换 element 的 CSS className(在有和无该类名称间切换),并返回元素本身。
样例
<div id="mutsu" class="apple"></div>
$('mutsu').hasClassName('fruit');
// -> false
$('mutsu').toggleClassName('fruit');
// -> element
$('mutsu').hasClassName('fruit');
// -> true
...
toggle
toggle(element) -> HTMLElement
切换 element 的可视性(在隐藏和显示间进行切换)。
样例
<div id="welcome-message"></div>
<div id="error-message" style="display:none;"></div>
$('welcome-message').toggle();
// -> HTMLElement(并隐藏 div#welcome-message)
$('error-message').toggle();
// -> HTMLElement(并显示 div#error-message)
注意
Element.toggle 不能 显示通过 CSS 样式表隐藏的元素。这不是 Prototype 的限制,而是与 CSS display 属性的解析过程有关。
译注:通过在 <style> 标签或外部样...
stopObserving
stopObserving(element, eventName, handler) -> HTMLElement
为 element 注销指定的事件处理程序。
这是对 Event.stopObserving 的简单代理,更深入的信息请参考 Event.stopObserving。
样例
$(element).stopObserving('click', coolAction);
// -> HTMLElement(并注销 'coolAction' 事件处理程序)。
siblings
siblings(element) -> [HTMLElement...]
获取 element 的所有兄弟节点,并返回一个数组,数组元素已经过 扩展。
如果两个元素有相同的父节点,则认为它们是兄弟节点,因此在样例中,head 和 body 是兄弟节点(它们的父节点都是 html)。
返回的数组成员按照元素在页面中的顺序进行排列(例如:索引 0 表示 element 的第一个兄弟节点)。
注意:所有 Prototype 的 DOM 扩展方法均忽略文本节点,仅返回元素节点。
Examples
<ul>
<li id="golden-delicious">Golden Delicious</li>
<li id="mutsu">Mutsu</li>
<li id="mcintosh">...
show
show(element) -> HTMLElement
显示 element,并返回元素本身。
样例
<div id="error-message" style="display:none;"></div>
$('error-message').show();
// -> HTMLElement (如果 div#error-message 隐藏,则显示)
注意
Element.show 不能 显示通过 CSS 样式表隐藏的元素。这不是 Prototype 的限制,而是与 CSS display 属性的解析过程有关。
译注:通过在 <style> 标签或外部样式表中定义 CSS 属性来隐藏元素,show 方法将不可用 (即该方法只针对内联的 CSS display 属性或通过 Javascript 程序实现的隐藏有效)。
<style>
#hidden-by...
setStyle
setStyle(element, styles) -> HTMLElement
修改 element 的 CSS 样式属性。参数 styles 是一个包含属性名/值对的 Hash 对象, 属性名必须使用 camelized 命名方式指定(译注:例如 CSS 属性 border-width 应写成 borderWidth,而不能写成 border-width)。
样例
$(element).setStyle({ backgroundColor: '#900', fontSize: '12px' });
// -> HTMLElement
注意
该方法在处理 float 和 opacity 时,对不同的浏览器而言是透明的。然而,float 是一个保留的关键字,所以必须进行转义,或使用 cssFloat 来代替。另外,opacity 的取值界于 0(完全透明)和 1(完全不透明)之间。在不同的浏览器...
select [1.6]
select(element, selector...) -> [HTMLElement...]
根据一个或多个指定的 CSS 选择器(字符串),在 element 中查找匹配其中任何一个选择器的后代节点, 返回数组,数组元素已经过 扩展。
该方法完全类似于 $$(),但只能用于一个元素的上下文中,而不是整篇文档。它们所支持的 CSS 语法完全相同,因此详细的描述请参考 $$()。
样例
<ul id="fruits">
<li id="apples">
<h3 title="yummy!">Apples</h3>
<ul id="list-of-apples">
<li id="golden-delicious" title="...
scrollTo
scrollTo(element) -> HTMLElement
滚动窗口以便 elemnet 显示在窗口可视区域的顶部,返回元素本身。
除不修改浏览器的历史记录外,该方法类似于使用 HTML anchors 所获取的效果。
样例
$(element).scrollTo();
// -> HTMLElement