So habe ich eine einfache Tabelle mit Eingabeelementen und ich muss dynamisch neue Zeilen hinzufügen.JavaScript cloneNode: SELECT hält einige unerwünschte Bindung
Eine der Zellen enthält ein SELECT-Element und eine Liste von OPTIONS, die mit cloneNode() repliziert werden.
Das Problem ist: Wenn ich eines der replizierten SELECT-Elemente ändern, ändert sich der Index der ursprünglichen SELECT auch auf den gleichen Wert, als ob eine Art "Bindung" durch den Klonprozess zurückgelassen wurde.
Meine Tabelle sieht wie folgt aus:
<table>
<tr>
<th>Header</th>
</tr>
<tr>
<td>
<select>
<option>Options</option>
</select>
</td>
</tr>
</table>
Die Klonierung Routine ist relativ komplex, da ich Zellen-IDs, Elementnamen und andere Dinge ändern müssen, aber es läuft darauf hinaus, so etwas wie dieses nach unten:
var table = document.querySelector('#table');
var rows = table.querySelectorAll('tr');
for (var x = 0; x < 5; x++)
{
row = rows[1].cloneNode(true);
// Changes everything that needs to be changed
table.appendChild(row);
}
Weiß jemand, was das ursprüngliche SELECT veranlassen könnte, zu den replizierten "gebunden" zu werden?
Vielen Dank im Voraus!
Wie aktualisieren Sie den Wert? – dandavis
Das Problem besteht möglicherweise nicht im Klon-Vorgang, sondern in der Art und Weise, wie Sie Ihren Index aktualisieren –
@TrinhHoangNhu: Es gibt kein "darf" darüber, cloneNode() verbindet nichts;) – dandavis