JQuery: Wie kann ich eine div mit class nach Klick auf einen Button einfügen?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Beispiel:

HTML:

<p></p>
<button id="btn1">Click me</button>

JavaScript:

$("#btn1").click(function() {
  $("p").append("<div class=\"operator\">Test</div>");
});

Demo


GangstacuX 
Fragesteller
 12.02.2020, 14:44

Hallo, ich habe dein Beispiel eingebaut, und es funktioniert alles. Genau so wie auch die anderen Antworten funktionieren. Danke also auch den anderen. An einer Stelle komme ich hier aber nicht weiter. Die ganze "append" Geschichte ist in einer for-schleife, und an sich funktioniert auch das. Ich kriege genau die Anzahl an div's generiert, die ich haben möchte. Nur mit dem "Test" dadrin habe ich ein Problem.

______________________________________________________________________________

for ( x = 1; x <= 10; x++ ) {

      $("#operatornumberbox").append("<div class=\"oneoperator_left\"> x </div>");

_______________________________________________________________________________

In jedem Schleifendurchgang soll außerdem als innerHTML der aktuelle Durchlauf angezeigt werden. Also der aktuelle Wert von x mit rein kommen. Dummerweise wird mir x als String rausgegeben. Also immer x, statt der aktuelle Zahlenwert.
Was ist der Clue? Danke!

0
regex9  12.02.2020, 16:25
@GangstacuX

Das x ist Bestandteil des Strings und wird folglich auch mit als konstanter Wert behandelt. Du musst aber den Wert von x aus der Variable holen und mit dem String verbinden.

Das lässt sich mit dem Konkatenationsoperator (+) lösen:

for (let x = 1; x <= 10; x++) { 
  $("#operatornumberbox")
     .append("<div class=\"oneoperator_left\">"
     + x
     + "</div>");
}
1

Du kannst den Klassennamen direkt im HTML mitgeben:

$("#btn1").click(function() {
  $("p").append('<div class="operator"> Test </div>');
});

Alternativ:

$("#btn1").click(function() {
  var $div = $('<div> Test </div>');
  $div.addClass("operator");
  $("p").append($div);
});

GangstacuX 
Fragesteller
 09.02.2020, 16:48

Perfekt, danke.

0
 $("#btn1").click(function(){
  $("p").append( $("<div> Test </div>").addClass("operator"));
});