Ich versuche, Eigenschaften für verschiedene Elemente innerhalb eines Textes, der durch inner-h-t-m-l geladen wird, aber ich bekomme nicht nur ein bestimmtes Element zu erhalten.Polymer mit getElementsby # Methode auf inner-h-t-m-l
Hier ist mein Code:
<template>
<iron-ajax
auto
url="[[some/path/url.html]]"
handle-as="text"
last-response="{{inputText}}"></iron-ajax>
<div class="textcontent" inner-h-t-m-l="{{inputText}}"></div>
</template>
<script>
Polymer({
is: 'text-page',
ready: function() {
var test = document.getElementsByClassName("author");
console.log(test);
}
});
</script>
So habe ich zwei Fragen dazu:
- Ist dies der beste Weg, um eine HTML-Seite in ein Polymer Element zu laden?
- Der Ausgang des console.log ist ein Array, das wie folgt aussieht:
HTMLCollection[0] 0: span.author 1: span.author 2: span.author length: 3 __proto__: HTMLCollection
Dies ist, da drei Elemente mit class-name "Autor" sind. Aber wenn ich dasselbe mit console.log(test[0])
mache, um nur das erste zu bekommen, bekomme ich "undefined"
als Ausgabe. Wie bekomme ich nur den ersten, und noch wichtiger, den Wert des span
?
Wenn ich 'Array.from' es gibt mir ein leeres Array zurück. Wenn ich "console.log (test.length)" im obigen Code mache, gibt es mir auch "0" zurück. – Vims
Hier ist ein Arbeitsbeispiel (obwohl ohne 'Eisen-Ajax'), öffnen Sie die Konsole, um die Ergebnisse zu sehen: https://jsfiddle.net/uq34vk2z/ – LasaleFamine
Vielen Dank! Dies funktionierte ohne die Eisen-Ajax, aber wenn ich die Eisen-Ajax hinzugefügt, wenn gescheitert. Nach einigem Suchen habe ich herausgefunden, dass es sein muss, weil die Funktion aufgerufen wird, bevor der Text geladen wird, so dass "zuerst" "nicht definiert" war. Also habe ich ein 'if (first! == undefined)' hinzugefügt und dann hat es gut funktioniert. – Vims