2017-05-02 4 views
-1

Inside Polymer, ich muss alle <a> mit bestimmten Klassennamen finden und ihre ID als innerHTML hinzufügen, aber ich bin nicht in der Lage, es herauszufinden. Die Klassennamen befinden sich in einer externen JSON-Datei, die über Iron-Ajax geladen wird.Wie man querySelectorAll in JS Iteration definiert

Im Moment habe ich diese Funktion:

Polymer({ 
    is: 'settings-menu', 
    properties: { 
      paragraphTitles: { 
       type: Object, 
       notify: true, 
       value: function(){return []} 
      }, 
      selectedParagraph: { 
       type: String, 
       computed: "_computePar(paragraphTitles)" 
      } 
    }, 
    _computePar: function(paragraphTitles) { 
    for (var key in paragraphTitles) { 
      var refs = document.querySelectorAll('a.',key); 
      refs.forEach(item => item.innerHTML = item.id); 
    } 
    }, 

Die JSON-Datei, die in paragraphTitles geladen wird etwa wie folgt aussieht:

{ 
     "as": "Page numbers in Author1, 1972.", 
     "adh-v": "Paragraph numbers in Some Other Author 1978", 
     "apz": "Paragraph numbers in Author 3", 
     "cps": "Paragraph numbers in Author 4, 1952-62", 
} 

Der Suchbegriff für den querySelectorAll offensichtlich falsch ist, aber wie gebe ich den richtigen Suchstring ein?

+1

meinst du ''a.' + Taste? –

+0

Ja, zum Beispiel muss es durch die JSON-Datei nach 'a.as',' a.adh-v', 'a.apz' usw. suchen. Also alle' ' mit diesen spezifischen Klassen und keine anderen. – Vims

+1

er schlug vor, 'var refs = document.querySelectorAll ('a.', Key);' mit 'var refs = document.querySelectorAll ('a.' + Key) zu ersetzen;' –

Antwort

1

Eigentlich nicht sicher, was Sie archivieren möchten, bitte posten Sie weitere Informationen. Aber was definitiv falsch ist mit Ihrem Code ist, dass

ist besser nicht verwendet, da dies Shadow Dom brechen wird. Verwenden Sie stattdessen

Polymer.dom(this).querySelectorAll()