//将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; }
各ノードには、NodeList オブジェクトを格納する childNodes 属性があります。 NodeList は、位置によってアクセスできる順序付けされたノードのセットを保存するために使用される配列のようなオブジェクトです。ただし、角括弧を使用してオブジェクトにアクセスでき、NodeList には length 属性もありますが、それは Array のインスタンスではないという事実に誰もが注意する必要があります。
もちろん、角括弧を使用するのと同じように、 item() メソッドを通じて NodeList 内のノードにアクセスすることもできます。どちらの方法でも問題はありません。その単純さのため、開発者は角かっこを好んで使用します。
ここでも、著者は NodeList を配列に変換する上記の方法を推奨していますが、メソッド Array.prototypr.slice.call(soneNode.childNodes,0); は IE8 以下ではサポートされていないため、列挙型 Use のみを使用できます。 NodeList を次元配列に変換するには、次のメソッドを使用します。 try-catch はエラーをキャッチし、配列を手動で作成します。
以上がchildNodes によって返されたデータを次元配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。