Etwas zu Klasse[x] (Html) hinzufügen?

  • Gibt es eine Möglichkeit etwas zu einer HTML Klasse hinzuzufügen, und zwar nur zu wirklich einer von x ? Es geht dabei konkret um eine Bearbeitungsfunktion. Ein Eintrag kann man bei mir dann im Backend bearbeitet werden und jeder Eintrag hat einen Button oder einen Link und wenn man auf diesen draufklickt, dann soll der Inhalt dieses Eintrages durch meinen gewünschten Inhalt ersetzt werden.


    Ich wollte dann dabei mit einem ajax request die Daten einfügen aber wie weiß ich dann, bei welchem Eintrag(Klasse?) der Button gedrückt wurde? Ich habe ja dann eine Form, die den Button enthält und diesem habe ich jetzt eine class hinzugefügt (test) und wenn ich jetzt dort draufklicke, dann wollte ich das hier machen:


    Dadurch wird dann auch der Inhalt eingefügt aber das bei jedem Eintrag aber wie mache ich das nur bei dem Eintrag? Wie kann ich das an die Stelle des Eintrages x einfügen? Um jeden meiner Einträge ist ein div gespannt, das sich entry nennt und der inhalt heißt entry-content aber wie kann ich diese dann seperieren?
    Wenn das so mit ajax nicht funktioniert bin ich auch gerne offen für Vorschläge.

  • Also, du kannst mit this auf das aktuelle Element zugreifen wenn es dich in einem event handler befindet (kompliziert formuliert :D )
    Ganz einfach

    HTML
    <div id="_a" class="entry"></div>
    <div id="_b" class="entry"></div>
    JavaScript
    $('.entry').click(function(){
      $this = $(this);
      //In $this steckt jetzt der geklickte Eintrag, und nur dieser!
      $this.addClass('clicked'); //eine Klasse hinzufügen
      alert('klicked '+$this.attr('id'));//Die aktuelle ID ausgeben
    });


    Ich hoffe das ist logisch erklärt und ist das was du suchst? :)


    http://codepen.io/wolf-w/pen/MwgvLg

  • Mhm .. okay, das funktioniert soweit, zumindest fast.
    Jetzt zeigt this aber auch auf die Form oder? Wenn ich mit console.log $this ausgebe, dann bekomme ich das hier:

    Code
    Object { 0: <form.test>, context: <form.test>, length: 1 }


    Ich würde das aber gerne vor der Form einfügen oder ein wenig weiter vor der Form, wie kriege ich das hin?

  • Mhm, okay. Ich habe das ganze jetzt auch mal ein wenig umbenannt aber das spielt ja keine Rolle, denke ich mal. Das ist jetzt zudem auch auf einer anderen Seite aber diese Seite hat fast den gleichen Aufbau


    Jetzt würde ich gerne hinter der Form der Form (back) die Meldung anzeigen.


    Noch einmal zu dem, was ich in meinem ersten Beitrag geschrieben habe (1. Beitrag):
    mit $this funktioniert es ja nun auch soweit. Jetzt kann man aber auch mehrere "Bearbeitungsfenster" öffnen und das finde ich jetzt auch nicht so schlecht aber mit jedem geöffneten neuem "Bearbeitungsfenster" scheinen sich auch * 2 neue Fenster (mit) zu öffnen, nur beim erstem Fenster nicht.


    Man könnte warscheinlich irgendwie über den Klassenselektor alle anderen sperren und mit $this die aktuelle entsperren aber wie kriege ich es hin, das ich mehrere Fenster gleichzeit geöffnet haben kann, ohne das sich dabei dann immer * 2 neue Fenster (mit) öffnen?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!