如何將childNodes傳回的資料轉換維數組

一个新手
發布: 2023-03-16 14:44:02
原創
1417 人瀏覽過


//将childNodes返回的数据转化为数组的方法
            function convertToArray(nodes){
                var array=null;
                try{
                    array=Array.prototype.slice.call(nodes,0);
                }catch(ex){
                    array=new Array();
                    for(var i=0,len=nodes.length;i<len;i++){
                        array.push(nodes[i]);
                    }
                }
                return array;
            }
            //筛选节点的方法
            function getElementList(arr,value){
                var arrList=new Array();
                for(var i=0,len=arr.length;i<len;i++){
                    if(arr[i].nodeType==value){
                        arrList.push(arr[i]);
                    }
                }
                return arrList;
            }
登入後複製

   每一個節點都有一個childNodes屬性,其中保存著NodeList物件。 NodeList是一種類別數組對象,用來保存一組有序的節點,可以使用位置來存取這些節點。不過要大家注意的是,雖然我們可以透過方括號來存取對象,且NodeList也有length屬性,但它並不是Array的實例。

  當然,我們也可以透過item()方法來存取NodeList中的節點,就像使用方括號一樣,可以進行存取。這兩種無論哪種方式都沒有問題,而且因為方括號的簡單性,所以更受開發人員的青睞。

  在此,筆者仍然推薦以上的NodeList轉數組的方法,但是因為在IE8及以下是不支援Array.prototypr.slice.call(soneNode.childNodes,0);這樣的方法,所以我們只能透過枚舉的方式,將NodeList轉換成維數組。 try-catch捕獲錯誤,並手動建立數組。

以上是如何將childNodes傳回的資料轉換維數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板