2017-09-22 1 views
1

Lets sagen, ich habe eine Angular App mit Fotoalbum. Wenn ein Nutzer auf ein Bild klickt, wird das Foto in voller Größe im Modal angezeigt. Innerhalb des Modales muss ich Attribut [src] auf img Element dynamisch ändern, wenn Benutzer auf Bild klicken.Ist möglich durch jquery gesetzt Wert auf Attribut, dessen Name eckige Klammern enthält

<img [src]="" /> 

So innen Skript, nachdem klicken, um es so sein sollte:

var $myelement =$("img"); 
$myelement.attr('[src]', 'http://google.com'); 

ich viele Möglichkeiten ausprobiert, wie setzen Sie [src] Attribut, aber ohne Erfolg Ergebnis. Wie kann ich das beheben, werden eckige Klammern benötigt. Beispiel oben produzieren folgenden Fehler: Uncaught (in Versprechen): InvalidCharacterError: Fehler beim Ausführen von 'SetAttribute' auf 'Element': '[src]' ist kein gültiger Attributname.

Danke

+0

Warum Sie Klammern gesetzt haben um das Attribut src? – Wndrr

+0

Das [erste Ergebnis] (https://learn.jquery.com/using-jquery-core/faq/how-do-i-select-an-element-by-an-id-that-has-characters-used -in-css-notation /) googeln "jquery selector escape spezielle Zeichen" hätte Ihre Frage übrigens beantwortet – Wndrr

+0

Nach mehr Tests, scheint es, dass Klammer um Attributnamen in HTML nur Probleme verursacht ... – Wndrr

Antwort

1

Sie sollten

$myelement.attr('\\[src\\]', 'http://google.com'); 

Warum setzen Sie Klammern um das src-Attribut verwenden können? Gibt es einen Grund, warum Sie nicht einfach schreiben

var $myelement =$("img"); 
 
$myelement.attr('src', 'http://via.placeholder.com/350x150');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<img src="" />

Verwandte Themen