• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    JavaScriptDOM學習第一章W3CDOM簡介_基礎知識

    來源:懂視網 責編:小采 時間:2020-11-27 20:47:19
    文檔

    JavaScriptDOM學習第一章W3CDOM簡介_基礎知識

    JavaScriptDOM學習第一章W3CDOM簡介_基礎知識:在這一章我主要介紹已經被新一代的瀏覽器所支持的W3C 第一級的DOM。對他的運作做一個大概的了解并且讓你知道你可以對他們做什么。 首先是對于DOM的一些建議和DOM設計的目的,然后我會告訴你什么是節(jié)點(nodes)并且怎樣通過DOM樹來遍歷節(jié)點。接著是如何得到一
    推薦度:
    導讀JavaScriptDOM學習第一章W3CDOM簡介_基礎知識:在這一章我主要介紹已經被新一代的瀏覽器所支持的W3C 第一級的DOM。對他的運作做一個大概的了解并且讓你知道你可以對他們做什么。 首先是對于DOM的一些建議和DOM設計的目的,然后我會告訴你什么是節(jié)點(nodes)并且怎樣通過DOM樹來遍歷節(jié)點。接著是如何得到一

    在這一章我主要介紹已經被新一代的瀏覽器所支持的W3C 第一級的DOM。對他的運作做一個大概的了解并且讓你知道你可以對他們做什么。
    首先是對于DOM的一些建議和DOM設計的目的,然后我會告訴你什么是節(jié)點(nodes)并且怎樣通過DOM樹來遍歷節(jié)點。接著是如何得到一個特定的節(jié)點,以及怎樣改變他的值和屬性。最后就是DOM的終極目標:怎么創(chuàng)建一個自己的新節(jié)點。
    建議
    Level 1DOM是W3C制定的用來提供給任何程序語言來訪問XML文檔的。不管你用什么語言程序來處理XML文檔,只要是Level 1DOM里面的方法和屬性就可以。不管是Perl、VBScript還是JavaScript你都可以讀取任何你想讀取的值并且修改他們。
    你們可能會猜到,這段描述的是一種理想情況,差異還是存在的(比如瀏覽器)。然后這部分內容還是比較少,并且你在JavaScript里學習如何處理XML也對你在其它語言中的學習會有一定的幫助。
    從某種程度上也可以講HTML看做是一種XML文檔。只要瀏覽器能夠處理相應的腳本,那么Level 1 DOM也同樣在HTML里面可以運行的很好。
    你可以讀取每一個HTML的標簽的文本和屬性,你可以刪除每一個標簽和他們的內容,你還可以實時的在現有的文檔里面插入一個新的標簽而不用在服務器上修改。
    因為設計之初要考慮到修改XML的方方面面,所以對于一般的網頁工程師來說有一些方法可能永遠也用不上。比如,你可以用它來修改HTML的注釋,但是我沒有看出來問什么要這樣做。同樣的還有一些DOM處理DTD/Doctype的內容,你在你的網頁設計中并不需要,所以忽略掉,集中注意力在你的日常所需上就好。
    節(jié)點(Nodes)
    文檔對象模型是一種文檔內的多個元素之間怎樣相互聯(lián)系的一種模型。在Level 1 DOM中,每一個對象都是一個節(jié)點。所以如果你寫:
    代碼如下:

    This is a paragraph


    那么你就創(chuàng)建了兩個節(jié)點:元素P和內容是"This is a paragraph”的文本節(jié)點。這個文本節(jié)點包含在P元素內,所以可以認為是p節(jié)點的子節(jié)點。反過來說,p元素就是文本節(jié)點的父節(jié)點。
    如果你寫成:
    代碼如下:

    This is a Paragraph


    那么元素節(jié)點p就有兩個子節(jié)點,其中一個還有他自己的子節(jié)點。
    最后就是參數節(jié)點。(令人困惑的是,他們不算做元素節(jié)點的子節(jié)點。事實上,在我寫這一章的過程中我做過一些測試,IE5根本就不把參數節(jié)點當做元素的子節(jié)點。)所以:
    代碼如下:

    This is a paragraph



    的結構可能是這樣的:

     

    ----------------

    -------------- ALIGN

    This is a |
    | right

    paragraph

    這就是元素節(jié)點,文本節(jié)點和參數節(jié)點。99%的HTML頁面都是由他們組成,你的主要任務也就是如何放置他們。當然還有很多的其他節(jié)點,暫且略過。

    就像你所了解的,p元素也有他自己的父節(jié)點,通常就是document,有時候也可能是一個DIV。所以整個文檔都可以看做是一顆由很多的節(jié)點組成的樹,而且這些節(jié)點大多都有自己的子節(jié)點。

     

    |-------------------------------------

    ---------------- lots more nodes

    -------------- ALIGN

    This is a |
    | right

    paragraph


    遍歷DOM樹
    知道了DOM樹的結構,你就可以遍歷他來找到你想要的元素。舉個例子,假設元素節(jié)點p已經存儲在變量x中(等一會介紹這是怎么做到的)。這時候如果我們想訪問BODY那么:
    代碼如下: x.parentNode
    我們就得到了x的父元素,然后就可以修改它了。這樣可以到達B節(jié)點:
    代碼如下: x.childNode[1]
    childNode是一個包含所有x的子節(jié)點的數組。當然,數組是從0開始編號的,所以childNode[0]就是文本節(jié)點"This is a " childNode[1]就是B節(jié)點。
    兩個特別的:x.firstChild就表示x的第一個子節(jié)點;x.lastChild就表示x的最后一個子節(jié)點。
    假設p是BODY的第一個子節(jié)點,BODY又是document的第一個子節(jié)點,所以為了到達B節(jié)點,你可以用下面的任意方法:
    代碼如下:
    document.firstChild.firstChild.lastChild;
    document.firstChild.childNodes[0].lastChild;
    document.firstChild.childNodes[0].childNodes[1];

    甚至是下面這個比較笨的:
    代碼如下: document.firstChild.childNodes[0].parentNode.firstChild.childNodes[1];
    得到一個元素
    然而,這樣遍歷文檔實在是太麻煩了。因為Level 1 DOM設計的目標就是允許你修改整個DOM樹,所以你必須準確的知道DOM樹的結構,這會很快導致一些問題。
    所以還有一些方法能夠很快的到達你想要的元素。只要你到達了這里,就可以遍歷整個DOM樹的每一個節(jié)點。
    讓我們繼續(xù)前面的例子。你想要到達元素B。最簡單的辦法就是直接跳過去。通過document.getElementByTagName你就能很快的創(chuàng)建一個包含文檔內的所有B標簽的數組。假設我們的B是第一個,那么你就可以簡單的寫:
    代碼如下: var x = document.getElementsByTagName('B')[0]
    x就包含了元素節(jié)點B。首先你命令瀏覽器得到整個文檔的所有元素B(document.getElementByTagName(‘B')) ,然后你選擇了第一個文檔的第一個元素B([0]),就得到了你想要的。
    你也可以寫:
    代碼如下: var x = document.getElementsByTagName('P')[0].lastChild;
    現在你先到了文檔的第一個段落P(假設我們的P是第一個元素),然后到達p的最后一個子元素。
    最好的能準確到達元素并且不需要DOM結構的辦法就是給B一個ID:

    This is a paragraph

    現在你就可以簡單的寫:
    代碼如下: var x = document.getElementById('hereweare');
    元素B就存儲在了x里。
    修改一個節(jié)點
    現在我們已經到達了節(jié)點,就可以做一些修改了。假設我們想把加粗的文字部分修改為'bold bit of text'。我們需要訪問正確的元素然后修改它的nodeValue。現在正確的元素不是元素B而是他的子元素text node:我們想改變的是文字,不是元素。所以可以寫:
    代碼如下: document.getElementById('hereweare').firstChild.nodeValue='bold bit of text';
    元素就改變了。
    你可以通過nodeValue來修改任何文本節(jié)點或者參數。比如你可以修改段落的ALIGN參數。這也是非常的簡單,先找到需要的元素(在這個例子中是B元素的父元素),然后使用setAttribute()方法來設置你想要的值:
    代碼如下: function test2(val) {
    if (document.getElementById && document.createElement)
    {
    node = document.getElementById('hereweare').parentNode;
    node.setAttribute('align',val);
    }
    else alert('Your browser doesn\'t support the Level 1 DOM');
    }

    創(chuàng)建和刪除元素
    修改元素固然有用,但是還是不如創(chuàng)建你需要的元素然后插入到現有的文檔中。我可以很簡單的在這個段落后面添加一個HR元素然后很簡單的刪除它。
    創(chuàng)建元素使用下面的方法:
    var x=document.createElemnt(‘HR')
    這樣HR就創(chuàng)建并且存儲在x中。第二步就是把x插入到文檔之中。我寫了一個ID是inserthere的SPAN,我們就把它插入到這。所以我們使用appendChild()方法:
    代碼如下: document.getElementById('inserthrhere').appendChild(x);
    刪除它稍稍有點麻煩。我先創(chuàng)建一個臨時變量node來存儲SPAN,然后我告訴他移除他的第一個子元素:
    代碼如下:
    var node=document.getElementById(‘inserthere');
    node.removeChild(node.childNode[0]);

    同樣的方法我們也可以創(chuàng)建一個新的元素然后添加在ID是hereweare的B元素上。
    代碼如下:
    var x = document.createTextNode(' A new text node has been appended!');
    document.getElementById('hereweare').appendChild(x);

    你可以試一試,你會注意到用老的辦法可能不會移除新加的文本,那是因為他們已經成為分離的兩部分了:

     

    ------------

    paragraph A new text node
    has been appended!


    (可以通過normalize()來把他們合并,但是IE5不支持)

    我不打算告訴你怎么移除它,自己練習會比較有收獲

    翻譯地址:http://www.quirksmode.org/dom/intro.html

    轉載請保留以下信息
    作者:北玉(tw:@rehawk)

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    JavaScriptDOM學習第一章W3CDOM簡介_基礎知識

    JavaScriptDOM學習第一章W3CDOM簡介_基礎知識:在這一章我主要介紹已經被新一代的瀏覽器所支持的W3C 第一級的DOM。對他的運作做一個大概的了解并且讓你知道你可以對他們做什么。 首先是對于DOM的一些建議和DOM設計的目的,然后我會告訴你什么是節(jié)點(nodes)并且怎樣通過DOM樹來遍歷節(jié)點。接著是如何得到一
    推薦度:
    標簽: 第一 java javascript
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久久久亚洲精品天堂| 国产成人精品福利网站在线| 国产精品无码久久综合| 狠狠精品久久久无码中文字幕 | 国产精品国产三级国产普通话| 国产香蕉国产精品偷在线| 久久精品国产影库免费看| 国自产偷精品不卡在线| 亚洲精品国产av成拍色拍| 久久99精品久久久久久齐齐| 性色精品视频网站在线观看 | 国产精品一区二区久久国产| 色一乱一伦一图一区二区精品| 久久久久亚洲精品无码网址 | 国产精品一区二区av| 中国精品18videosex性中国| 日韩亚洲精品福利| 欧洲精品一区二区三区在线观看| 国产在线精品一区二区不卡麻豆| 香蕉久久夜色精品国产小说| 91热成人精品国产免费| 日本一区精品久久久久影院 | 亚洲精品乱码久久久久久蜜桃不卡 | 亚洲热线99精品视频| 欧美日韩国产中文精品字幕自在自线| 97久久精品人人做人人爽| 午夜影视日本亚洲欧洲精品一区| 国产精品分类视频分类一区| 国产成人精品白浆久久69| 久久亚洲中文字幕精品有坂深雪| 亚洲AV永久无码精品| 亚洲国产精品一区二区第一页| 亚洲日韩国产精品乱| 亚洲一区无码精品色| 亚洲国产成人一区二区精品区| 亚洲av无码乱码国产精品| 久久精品国产亚洲AV电影| 精品国产午夜理论片不卡| 国产成人精品999在线观看| 国产欧美国产精品第一区| 2020最新久久久视精品爱|