天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Prototype中dom對象方法匯總

以下部分一個一個的詳細介紹:

$(element):getElementById的封裝,element可以是一個元素的id或元素本身,也可以是一個數組,這時返回一個數組,使用$方法,會自動調用Element.extend(element)方法,這樣的話使元素可以直接調用Element中的方法, 例如Element.hide(element)可以寫成這樣$(element).hide()

document.getElementsByClassName(className, parentElement): 根據class選擇元素

Element.extend(element): 擴展element,使element可以直接調用Element、Form.Element或Form中定義的方法

Element對象的方法:

visible: function(element):判斷element是否可見, 參數element可以是元素本身或元素id(下面的方面的參數基本上都是這樣的)
toggle: function(element):反轉element的可見性
hide: function(element):隱藏元素
show: function(element):顯示元素
remove: function(element):移除元素
update: function(element, html) :使用html更新element的內容,html中的script會執行(下同)
replace: function(element, html):將element替換為html
inspect: function(element):element的字符串表示
recursivelyCollect: function(element, property): 遞歸收集, 例如Element.recursivelyCollect(element, "parentNode")返回element所有的祖先節點, 注意只返回nodeType == 1的元素,也就是不返回文本元素
ancestors: function(element): 等同于上面的例子,返回元素的所有祖先節點
descendants: function(element): 返回所有子孫節點
immediateDescendants: function(element):返回元素的直接的子孫節點(子節點)的數組
previousSiblings: function(element):返回元素前面的兄弟節點
nextSiblings: function(element):返回位于元素后面的兄弟節點
siblings: function(element):返回元素所有的兄弟節點
match: function(element, selector):使用Selector的match方法匹配元素(Selector將在后面介紹), selector參數是一個css selector表達式或者Prototype中的一個Selector實例,如果element匹配selector則返回true,否則返回false,例如對于一個className為logcss的div來說,下面的表達式返回true, $(element).match("div.logcss") 待續。。

//update 2006-11-30 09:40


up(element, expression, index):利用Selector.findElement方法找到element元素的祖先節點中符合表達式expression的所有元素組成的數組索引為index的元素,也可以忽略expression(默認為*,表示匹配所有元素)和index(默認為0),直接這樣調用up(element, index)或up(element)
down(element, expression, index):跟up一樣,只是返回的是子孫節點
previous(element, expression, index):返回前面的兄弟節點
next(element, expression, index):返回后面的兄弟節點
getElementsBySelector(element,args):Selector.findChildElements(element, args)的封裝,args表示可以傳遞多個參數,每個參數是一個css selector表達式,返回element的子孫節點中符合任何一個css selector表達式的元素組成的數組
getElementsByClassName(element, className):返回element中的子孫節點中符合clsssName的元素
readAttribute(element, name):return $(element).getAttribute(name),之所以添加這個方法是因為在IE和Safari(Mac)中getAttribute不是一個真正的函數,它沒有call、apply等方法,所以在很多時候調用會出現錯誤(Prototype中很多地方使用了函數的這兩個方法),例如下面的例子(官方文檔中的一個例子),就只能使用readAttribute:

<div id="widgets">
<div class="widget" widget_id="7">...</div>
<div class="widget" widget_id="8">...</div>
<div class="widget" widget_id="9">...</div>
</div>
$$('div.widget').invoke('readAttribute', 'widget_id')
// ["7", "8", "9"]

//Update 2006-12-1

getHeight: function(element):返回元素高度,return element.offsetHeight
classNames: function(element):返回一個Element.ClassNames對象,改對象提供對元素class的操作,包括add、remove、set等,一般很少使用,使用Element.addClassName等方法就可以了(就在下面)
hasClassName: function(element, className) :判斷element是否含有className
addClassName: function(element, className) :給element添加一個class
removeClassName: function(element, className) :移除元素中的一個class
observe():調用Event對象(Prototype中的,將在后面介紹)的observe方法為元素注冊事件handle
stopObserving() :移除注冊的事件handle
cleanWhitespace: function(element):移除元素中空白的文本子節點
empty: function(element):判斷元素是否為空
childOf: function(element, ancestor) :判斷element是否為ancestor的子孫節點
scrollTo: function(element) :滾動條移動到元素所在的地方
getStyle: function(element, style) :得到元素某個css樣式的值,例如$(element).getStyle("float")
setStyle: function(element, style) :設置元素的css樣式,style十一個對象,例如element.setStyle({left: "40px", "background-color":"#666"})
getDimensions: function(element) :得到元素的尺寸,即使元素是隱藏的也可以正確的返回,返回 return {width: originalWidth, height: originalHeight}這樣的關聯數組
makePositioned: function(element) :當元素的position css屬性為static或不存在使,將次屬性更改為relative
undoPositioned: function(element) :跟makePositioned相反的操作
makeClipping: function(element) :把元素變成clipping(切片),也就是設置元素的overflow屬性為hidden
undoClipping: function(element):反轉上面的方法對元素所做的修改
hasAttribute(element):判斷元素是否有某個屬性

Element對象的方法是不是不少啊,哈哈,下面介紹有關Insertion的四個類

Insertion.Before:將內容插入到元素的前面,內容在元素外面
Insertion.Top:將內容插入到元素的頂部,內容在元素里面
Insertion.Bottom:將內容插入到元素的底部,內容在元素里面
Insertion.After:將內容插入到元素后面,內容在元素外面

使用它們的方法比較簡單:new Insertion.where(element, content),其中where表示上面的Before、Top等,content是html字符串,注意其中Javascript片斷會執行

終于寫完了,Prototype的Element方法還真不少

雖然以前覺得自己對Prototype還比較熟悉,寫的也有點累,但是發現自己收獲仍然挺大的,為了寫出這些方法的具體作用和用法,必須強迫自己一行行的把Prototype的代碼弄清楚,使自己對Prototype中很多精巧的寫法有了更深刻的認識和理解

寫這個教程的主要目的是為了給大家一個快速的參考,大家還是對照著源代碼看才會真正有所提高

JavaScript技術Prototype中dom對象方法匯總,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 日韩av片无码一区二区不卡电影 | 呜呜别塞了啊抽插 | 一级毛片免费播放 | 青娱乐视觉盛宴国产视频 | 日本高清免费一本视频在线观看 | 国产午夜一级鲁丝片 | 国产亚洲精品第一区香蕉 | 免费精品国偷自产在线在线 | 我年轻漂亮的继坶2中字在线播放 | 99无码熟妇丰满人妻啪啪 | 99无人区码一码二码三 | 动漫美女人物被黄漫在线看 | 老色69久久九九精品高潮 | 岳的奶大又白又胖 | 国产三级在线免费 | 黄色三级视频在线观看 | 日本美女毛茸茸 | 中文字幕日本在线mv视频精品 | 午夜福利免费视频921000电影 | 丰满五十六十老熟女HD60 | 日韩欧美一区二区三区在线视频 | 亚洲AV中文字幕无码久久 | 4虎影院午夜在线观看 | 秘密教学26我们在做一次吧免费 | 久久精品亚洲国产AV涩情 | 娇妻让壮男弄的流白浆 | 女人被躁到高潮嗷嗷叫小 | 国产成人啪精视频精东传媒网站 | 丫鬟粗大狠狠贯穿h | 爆乳啪啪无码成人二区亚洲欧美 | 日日噜噜噜夜夜爽爽狠狠图片 | 大胆国模一区二区三区伊人 | 99热国产这里只有精品9九 | 国产乱码免费卡1卡二卡3卡四卡 | 毛片大全网站 | 黄色三级在线观看 | 亚洲午夜无码久久久久蜜臀av | 鬼灭之刃花街篇免费樱花动漫 | 最近中文字幕MV免费高清在线 | 且试天下芒果免费观看 | 青青伊人精品 |