Ich habe eine Liste von sections
mit jeweils vorgefertigten div
und button
, um dynamisch neue divs darunter zu erstellen. Die divs werden immer am Ende des Abschnitts erstellt, in dem sie sich befinden, und sollten nach ihrer Position in der Zeile statt ihrer Erstellungsreihenfolge nummeriert werden.dynamisch Zeilennummer abhängig von seiner Position
<section id="section1"><div class="premade">1</div></section>
<button onclick="addRow(1)">Create new</button>
<section id="section2"><div class="premade">2</div></section>
<button onclick="addRow(2)">Create new</button>
Ich stecke beim Versuch, jede Zahl dynamisch einzustellen. Wenn ich ein neues div erzeuge, sollte es seine Nummer erhalten, abhängig von dem Abschnitt, in dem ich es erstellt habe, und der Anzahl der divs, die dieser Abschnitt enthält, plus der Anzahl der divs, die die vorherigen Abschnitte haben. Und nicht, wie ich tat:
section.innerHTML += '<div class="created"> ' + parseInt(index + R) + '</div>'
R += 1;
Der Code, den ich bekommt schrieb die richtige Nummer, wenn ich neue divs schaffen vom ersten bis zum letzten Abschnitt, aber es funktioniert nicht, wenn ich in einem früheren Abschnitt zurück eine neue, wie es zu erstellen kennt nicht die Anzahl der vorhandenen Divs, die die Sektionen bereits haben. Die Anzahl der divs, die nach dem neuen positioniert sind, sollte ebenfalls geändert werden, um der neuen Position in der Zeile zu entsprechen. Ich stehe fest, versucht, die richtige Syntax in Javascript zu finden. Irgendeine Idee, wie ich das machen könnte?
Danke für Ihre Hilfe
Meine Geige: https://jsfiddle.net/balleronde/8bx98a0r/
Angenommen, * index * ist ein String, dann müsste 'parseInt (index + R) '' parseInt (index) + R' sein, aber vielleicht wird es trotzdem nicht benötigt. ;-) – RobG
In Javascript würde das '+' in 'parseInt (index) + R' die Zahlen wie 1 + 1 = 11 assoziieren, anstatt Mathe 1 + 1 = 2.Danke für deine Antwort :) – Nora
Verwendung ' parseInt (index + R) 'garantiert, dass, wenn eine Zeichenkette ist,' 1 + 1' '11' ist. Jeder Wert muss zuerst in eine Zahl umgewandelt werden, ich nahm an, dass * R * auf eine Zahl initialisiert werden würde und daher keine Konvertierung benötigt. – RobG