Ich habe eine foreach
, die eine Liste von Links jetzt in der oberen rechten Ecke jedes Links erzeugt Ich habe eine Klon-Schaltfläche, die beim Klonen dieses Element klonen sollte. Der folgende Code in seinem aktuellen Format.Klon php foreach Elemente mit Javascript
<?php
foreach ($result as $value) {
list($classname, $origin, $name) = explode('_', $value);
$classname = trim($classname, '[]');
$origin = trim($origin, '[]');
$name = pathinfo($name, PATHINFO_FILENAME);
echo "<li class='audiofile " . $name . " " . $classname . "' id='" . $value . "'>".
"<a class='btn_clone' id='' onclick='repeat()'>#</a>".
"<a href='" . $directoryname . "/" . $value . "'>".
"<img src='images/avatars/" . $classname . ".jpg'>".
"<div class='audiotext'>".
"<span class='audiotitle'>" . $name . "</span>".
"<span class='audioorigin'>" . $origin . "</span>".
"</div>".
"</a>".
"</li>";
}
?>
Dies geht zusammen mit dieser js weiter unten in der Datei.
var i = 0;
var original = document.getElementById('<?php echo $value ?>');
function repeat() {
var clone = original.cloneNode(true);
clone.id = "clone" + ++i;
original.parentNode.appendChild(clone);
}
Derzeit wird es klonen nur das letzte Element der Liste unabhängig davon, welche Artikel Sie die Klon-Schaltfläche geklickt. Und das ist, glaube ich, weil die $value
für die var original
ist einfach das letzte Element der foreach
.
So, wie es mit den generierten IDs in foreach
arbeiten. Oder wenn es einen anderen Weg gibt, um jeden Gegenstand zu klonen, aber die foreach
intakt zu behalten, würde ich es wirklich schätzen, es zu hören. Vielen Dank im Voraus für die Hilfe.
Wie würde ich dies in die Funktion wiederholen? Ich versuche jetzt aber ein paar Fehler wie Original nicht definiert. Vielen Dank für die Hilfe BTW! Ich habe das benutzt. https://jsfiddle.net/z4dkaz1u/ Testen Sie jetzt den überarbeiteten Code. Schätze die Hilfe! – purple11111
Ich habe gerade Ihren letzten überarbeiteten Code getestet und er gibt keinen Fehler, aber er klont auch nicht. – purple11111
Sorry meine schlechte Bitte entfernen Sie einfach 'var original = document.getElementById (' Php echo $ value?>');' Und verwenden Sie den Code in der Antwort! –