2017-07-07 2 views
3

Ist es möglich, ES6 Vorlage Literale in jQuery $.each Methode zu verwenden?

versucht, wie dies zu tun, ohne Erfolg:

let arr = this.arr; 

    $.each($("g#texts").children(), function (i, contents) { 
    $("#`${contents.id}` tspan") 
     .text(arr.find(a => a.name == "`${contents.id}`") 
     .displayedName); 
    }) 

Was hier korrigiert werden sollte?

+0

Das sind keine ES6-Vorlagenliterale. Das ist die Vorlagensyntax in einem String-Literal. – Bergi

Antwort

5

Es ist sicherlich möglich. Das Problem besteht darin, dass Sie das Vorlagenliteral innerhalb eines Zeichenfolgenliterals platziert haben. Das zweite Vorlagenliteral ist ebenfalls redundant. Wenn Sie die Syntax korrigieren, funktioniert der von Ihnen geschriebene Code einwandfrei:

$("g#texts").children().each(function (i, contents) { 
    $(`#${contents.id} tspan`).text(arr.find(a => a.name == contents.id).displayedName); 
}); 
+0

jQuery gibt mir einen Fehler: "Uncaught Error: Syntaxfehler, unerkannter Ausdruck: # tspan ...". Die "tspan" ist in einem "Text" -Element (SVG) verschachtelt. Das Setzen neuer Textwerte funktioniert beim Hardcoding einwandfrei; $ {} Literale werden jedoch nicht kooperieren. – AbreQueVoy

+2

Der Fehler impliziert, dass das Element, auf das "contents" zeigt, kein 'id' Attribut hat, daher wird der ungültige Selektor' # tspan' verwendet –

+0

Das ist der Punkt: Ich habe keine Ids aller Kinder gesetzt und die Methode ist gelaufen auf leere Werte. Jetzt habe ich das korrigiert und alles funktioniert perfekt, danke fürs helfen! – AbreQueVoy