//将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; }
Jeder Knoten verfügt über ein childNodes-Attribut, das das NodeList-Objekt enthält. NodeList ist ein Array-ähnliches Objekt, das zum Speichern einer geordneten Menge von Knoten verwendet wird, auf die nach Position zugegriffen werden kann. Allerdings muss jeder darauf achten, dass wir zwar über eckige Klammern auf das Objekt zugreifen können und NodeList auch über das Längenattribut verfügt, es jedoch keine Instanz von Array ist.
Natürlich können wir auch über die Methode item() auf die Knoten in der NodeList zugreifen, genau wie bei der Verwendung von eckigen Klammern. An beidem ist nichts auszusetzen, und eckige Klammern werden von Entwicklern aufgrund ihrer Einfachheit bevorzugt.
Hier empfiehlt der Autor weiterhin die obige Methode zum Konvertieren von NodeList in ein Array, da die Methode Array.prototypr.slice.call(soneNode.childNodes,0); jedoch in IE8 und darunter nicht unterstützt wird NodeList kann nur durch Aufzählung in ein dimensionales Array umgewandelt werden. try-catch fängt den Fehler ab und erstellt das Array manuell.
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie die von childNodes zurückgegebenen Daten in ein dimensionales Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!