Verstehe, so wird das alles jetzt viel klarer.
ZitatIn der Html Datei habe ich dann einige Karten erstellt und mit der hinzufuegen Methode an das Array angehangen. Das klappt soweit auch.
Das bedeutet, dass wir jetzt auf der einen Seite das Array in der Visitenkartenliste haben und auf der anderen die HTML-Elemente. Vermutlich sind beide parallel aufgebaut, aber besser als uns darauf zu verlassen wäre es, eine Referenz im HTML-Element auf das Array in der Visitenkartenliste zu hinterlegen. Dafür eignet sich ein data-Attribut: data-idx="5".
Also den Index beim Hinzufuegen zurück geben und in das data-Attribut eintragen:
hinzufuegen(name, adresse,telefonnummer, fax) {
let idx = this.karten.length;
let k = new Visitenkarte(name, adresse,telefonnummer, fax);
this.karten.push(k);
return idx;
}
Und dann im Eventhandler:
let domObjArr = document.getElementsByClassName('Visitenkarte');
for(let i=0; i < domObjArr.length; i++)
domObjArr[i].addEventListener('click', function(){
let idx = this.dataset['idx'];
let karte = visitenkartenliste.holen(idx);
karte.showVisitenkarte();
});
}
Wenn man es so macht, braucht man noch die Funktion holen in der Liste, die kannst Du selber hinzufügen. Alles ungetestet.