Ich arbeite an einem Projekt, in dem ich es6 Code mit Babel benutze. Ich verwende den folgenden Code ein:ie11 Element.children polyfill
let result= xmlDocument.querySelector("xmlNodeSelector");
for (let child of result.children) { /* do something */ }
Das Problem, das es Arbeit auf IE11 Eigenschaft, da keine Kinder doens't.
ich erstellen Sie die folgende polyfill aber es half nicht:
if(Element.prototype.hasOwnProperty('children')){
return;
}
Object.defineProperty(Element.prototype, 'children', {
get: function(){
let children = new HTMLCollection();
for(let i=0; i < this.childNodes.length; i++){
let item = this.childNodes[i];
if(item.nodeName !== '#text'){
children.push(item);
}
}
return children;
}
});
Wenn ich IE11 debuggen Ich kann sehen, der Prototyp ist Element aber die Eigenschaft wird nicht hinzugefügt. Zusätzlich bei der Verwendung:
selectorResult instanceof Element
selectorResult instanceof Node
Ich bekomme auf beiden falsch.
Im Moment verwende ich eine Methode, um Kinder zu extrahieren und dann zu dem Prototyp hinzuzufügen, was ich bevorzuge.
Irgendwelche Vorschläge?
Vielen Dank im Voraus
Können Sie bitte die '<>' Schaltfläche klicken und fügen Sie ein [MCVE] – mplungjan
mehr Code hinzugefügt, bevor sie für ... Schleifen –
IE11 hat Kinder Eigenschaft, aber nur auf HTML-Elemente. Deshalb helfen Sie Polyfill nicht. – Arnial