首頁 >web前端 >js教程 >javascript中parentNode,childNodes,children的應用詳解_javascript技巧

javascript中parentNode,childNodes,children的應用詳解_javascript技巧

WBOY
WBOY原創
2016-05-16 17:08:461322瀏覽

"parentNode"

常用來取得某個元素的父節點. 把 parentNodes 理解為容器, 在容器中有個子節點    

例:


My text

在上面的程式碼中, 你看到把"爹"作為一個div 容器, 該容器中有個"孩子", 就是粗體的文字部分. 如果你打算用getElementById() 方法獲取粗體元素並且想知道它"爸爸"是誰, 返回的信息將是一個div. 演示下面的腳本, 你就知道是怎麼回事啦...

引用:

複製程式碼 程式碼如下:


My text

alert(document.getElementById("child").parentNode.nodeName);
//-->


用parentNode 不一定只找到一個"爸爸", "兒子"也可以成為"爸爸", 如下面的例子...

引用:

複製程式碼 程式碼如下:


        

           My 🎜>上面這段代碼中有兩個"爸爸"和兩個"孩子". 頭一個div ( id "parent") 是第二個div (childparent) 的"爸爸".          
在"childparent" 中有個粗體元素(id "child"), 是"childparent" div 的"孩子". 那麼, 如何訪問到"爺爺" (id "parent")? 很簡單....

引用:


複製程式碼

程式碼如下:
         
             My


注意到兩個parentNode 連用了嗎? "parentNode.parentNode". 第一個parentNode 是div ( id "childparent"), 因為我們要得到最外層的父元素, 所以另外加了一個parentNode 就到了div ( id "parent").
使用parentNode 不只找到某個元素的nodeName, 還會更多. 例如, 你可以獲取包含大量元素的父節點, 並在末尾添加一個新的節點.
IE 有它自己的名稱叫做"parentElement", 對於交叉瀏覽器腳本建議使用parentNode.

再囉嗦兩句:
如果將 javascript 放在 html檔頭部, 會發生錯誤. Firefox 會有如下報錯:

document.getElementById("child") has no properties

而 IE 則是:

Object Required

原因是所有的支援javascript 的瀏覽器在完全解析DOM 之前運行javascript . 在實際在Web 編程中,可能會將大多數javascript 放在head 標籤中. 為了能夠正常運行, 需要在函數中包裹alert , 在文件載入後呼叫函數. 例如在Body 標籤中加入.

parentNode、parentElement,childNodes、children 它們有什麼區別呢?
parentElement 取得物件層級中的父物件。
parentNode 取得文件層次中的父物件。
childNodes 取得作為指定物件直接後代的 HTML 元素和 TextNode 物件的集合。
children 取得作為物件直接後代的 DHTML 物件的集合。


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

parentNode和parentElement功能一樣,childNodes和children功能一樣。但是parentNode和childNodes是符合W3C標準的,可以說比較通用。而另外兩個只是IE支持,不是標準,Firefox不支持

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

也就是說parentElement、children是IE自家的東西,別的地方是不認的。
那麼,他們的標準版就是parentNode,childNodes。
這兩個的作用和parentElement、children是一樣的,並且是標準的、通用的。

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

以下是簡單的解釋,注意個別字的差異:
parentNode Property: Retrieves the parent object in the document hierarchy.

parentElement Property:Retrieves the parent object in the object hierarchy.

childNodes:
Retrieves a collection of HTML Elements and TextNode objects that are direct descendants of the specified object.

children:
Retrieves a collection of DHTML Objects that are direct descendants of the object.


parentElement parentNode.parentNode.childNodes用法範例

第一種方法

複製程式碼 程式碼如下:


程式碼如下:



程式碼如下:



程式碼如下:



程式碼如下:


New Document

New Document













第二種方法複製程式碼 程式碼如下:



   
    1111
   
   


   
    1111
   
   


   
    1111
   
   





獲取HTML中的父控件方法


複製代碼代碼如下:
function setvalue(v,o)
    {
        //var obj >       alert(o.parentNode.innerHTML);

       alert(o.parentNode); //parentNode此處也是取得父控制

       alert(o.parentElement); //parentElement此處也是取得父控制

       alert(o.parentElement.parentNode); //parentElement.parentNode這裡也是取得父控制

        //o.parentNode.bgColor="red";

         o.parentElement.parentNode.bgColor="red> >



複製程式碼

程式碼如下:

新建網頁1 <script></script>
    function setvalue(v,o)
    {
        //var obj=document.getElementById(''batchRate''dow);
       alert(o.parentNode);

       alert(o.parentElement);

        //o.parentNode.bgColor="red";

       o.parentElement.parentNode.bgColor="red";



;dfsdfdsfdsa td>

   
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn