中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術(shù)文檔 > 網(wǎng)頁制作 > JavaScript框架比較:DOM遍歷
JavaScript框架比較:DOM操作 回到列表 重構(gòu)中的模塊化設(shè)計(jì):樣式的作用域
 JavaScript框架比較:DOM遍歷

作者:dishuipiaoxiang 時(shí)間: 2010-04-22 文檔類型:翻譯 來自:

DOM遍歷

基于ID、元素類型、類名查找元素非常有用,但是如果你想基于它在DOM樹中的位置來查找元素該怎么辦?換句話說,你有一個(gè)給定的元素,你想查找它的父元素、子元素中的一個(gè)、它的上一個(gè)或下一個(gè)節(jié)點(diǎn)兄弟節(jié)點(diǎn)。例如,采用下面這段零碎的HTML代碼:

清單1:HTML碎片(一個(gè)table)

<table>
    <thead>
        <tr>
            <th>Name</th>
            <th>Email Address</th>
            <th>Actions</th>
        </tr>
    </thead>
    <tbody>
        <tr id="row-001">
            <td>Joe Lennon</td>
            <td>joe@joelennon.ie</td>
            <td><a href="#">Edit</a>&nbsp;
                <a href="#">Delete</a></td>
        </tr>
        <tr id="row-002">
            <td>Jill Mac Sweeney</td>
            <td>jill@example.com</td>
            <td><a href="#">Edit</a>&nbsp;
                <a href="#">Delete</a></td>
        </tr>
    </tbody>
</table>

清單1使用縮進(jìn)來說明其中每個(gè)元素節(jié)點(diǎn)在DOM樹中的位置。在這個(gè)實(shí)例中,table元素是根元素,有兩個(gè)子節(jié)點(diǎn)thead和tbody。thead元素有一個(gè)tr子節(jié)點(diǎn),tr有三個(gè)孩子--所有的th元素。tbody元素有兩個(gè)tr子節(jié)點(diǎn),每個(gè)tr節(jié)點(diǎn)有三個(gè)孩子。在上述每一行的第三個(gè)節(jié)點(diǎn)中進(jìn)一步包含子節(jié)點(diǎn),都是兩個(gè)鏈接標(biāo)記。

正如你知道的那樣,你可以使用一個(gè)JavaScript框架的選擇函數(shù)通過ID很輕松的選擇一個(gè)元素。在這個(gè)實(shí)例中,有兩個(gè)元素?fù)碛蠭D,它們是ID分別為row-001和row-002的tr元素。使用Prototype庫選擇第一個(gè)tr,可以使用下面的代碼:

var theRow = $('row-001');

在上一章,你還了解到,基于元素的類型或class使用選擇器來獲取元素。在這個(gè)實(shí)例中,你可以使用下面的語法來得到所有的td元素。

var allCells = $$('td');

改代碼的主要問題在于它返回了每一個(gè)td 元素。但是,如果你只想得到ID為row-001的tr的所有td元素該怎么辦?這正是DOM遍歷函數(shù)發(fā)揮作用的地方。首先,讓我們使用原型來選擇ID為row-001的tr的所有的子級。

var firstRowCells = theRow.childElements();

這將返回theRow變量(你最初設(shè)置的ID為row-001的tr)所有子元素的數(shù)組。

接下來,我們假設(shè)你只想得到該行的第一個(gè)子元素。在本例中,即包含“Joe Lennon”文本的td元素。要做到這一點(diǎn),使用下面的語句:

var firstRowFirstCell = theRow.down();

真簡單!這個(gè)特定的使用方法等價(jià)于:

var firstRowFirstCell = theRow.childElements()[0];

也可以這樣表示:

var firstRowFirstCell = theRow.down(0);

JavaScript的索引從零開始,所以上面的語句主要告知JavaScript來選擇第一個(gè)子元素。要選擇第二個(gè)子元素(單元格包含電子郵件地址joe@joelennon.ie),你可以這樣用:

var firstRowSecondCell = theRow.down(1);

或者,你可以在兄弟節(jié)點(diǎn)之間瀏覽DOM。本例中,第二個(gè)單元格是第一個(gè)單元格的下一個(gè)兄弟節(jié)點(diǎn)。因此,你可以使用下面的語句:

var firstRowSecondCell = firstRowFirstCell.next();

與down()函數(shù)工作一樣,選擇第三個(gè)單元格可以這樣使用。

var firstRowThirdCell = firstRowFirstCell.next(1);

除了使用索引來查找特定節(jié)點(diǎn)外,Prototype庫還可以使用CSS選擇器語法。在清單1中,我們要找到第二個(gè)包含 Jill Mac Sweeney’ 詳細(xì)信息的鏈接(“刪除”鏈接)。

var secondRowSecondLink = $('row-002').down('a', 1);

在本例中,使用$函數(shù)來查找ID為row-002的那一行,向下遍歷到第二個(gè)后代a元素(錨點(diǎn))。

一些框架還允許“菊花鏈?zhǔn)健钡谋闅v功能,這意味著你可以彼此連接遍歷命令。上面的例子中,Prototype庫的另一種表達(dá)方式是這樣的:

var secondRowSecondLink = $('row-002').down('a').next();

看看下面的例子:

var domTraversal = $('row-001').down().up().next().previous();

正如你所見,菊花鏈允許你連接多個(gè)DOM遍歷語句。事實(shí)上,上述例子實(shí)際上最終選擇ID為row-001的tr元素,所以菊花鏈又回到了開始的地方。

轉(zhuǎn)載地址:http://www.denisdeng.com/?p=708

原文地址:http://www.ibm.com/developerworks/web/library/wa-jsframeworks/index.html

本文鏈接:http://www.95time.cn/tech/web/2010/7528.asp 

出處:
責(zé)任編輯:
bluehearts

◎進(jìn)入論壇網(wǎng)頁制作WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。

相關(guān)文章 更多相關(guān)鏈接
JavaScript框架比較
JavaScript框架比較:框架比較
JavaScript框架比較:用戶體驗(yàn)
JavaScript框架比較:Ajax
JavaScript框架比較:事件處理
作者文章 更多作者文章
關(guān)于if語句的幾種優(yōu)化
JavaScript異步方法隊(duì)列鏈
css3彈性盒模型
JavaScript框架比較
JavaScript框架比較:框架比較
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計(jì)比賽 網(wǎng)頁制作 web標(biāo)準(zhǔn) 用戶體驗(yàn) UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點(diǎn)最新 站點(diǎn)最新列表
周大福“敬•自然”設(shè)計(jì)大賽開啟
國際體驗(yàn)設(shè)計(jì)大會(huì)7月將在京舉行
中國國防科技信息中心標(biāo)志征集
云計(jì)算如何讓安全問題可控
云計(jì)算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機(jī)會(huì)
阿里行云
云手機(jī)年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅(jiān)的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機(jī)主題設(shè)計(jì)大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺(tái)歷
Ps簡單繪制一個(gè)可愛的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡單的作品展示頁面
CSS定位機(jī)制之一:普通流
25個(gè)最佳最閃亮的Eclipse開發(fā)項(xiàng)目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨(dú)家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點(diǎn)的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請不要盜鏈到本站,且不準(zhǔn)打上各自站點(diǎn)的水印,亦不能抹去我站點(diǎn)水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計(jì)作品,如需使用,請與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請與我們聯(lián)系,我們將立即刪除修改。

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會(huì)員,你可以注冊 為本站會(huì)員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯(cuò)誤,請用報(bào)告錯(cuò)誤,以利文檔及時(shí)修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請您注意:
·不良評論請用報(bào)告管理員,以利管理員及時(shí)刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項(xiàng)有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評論管理人員有權(quán)保留或刪除其管轄評論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評論文檔 | 報(bào)告錯(cuò)誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計(jì)之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設(shè)計(jì)》
犀利開發(fā)—jQuery內(nèi)核詳解與實(shí)踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2