Hallo. Ich finde einfach nicht den Fehler, warum Shuffle nicht ausgeführt wird. Der Rest wird ausgeführt. Er will die Funktion einfach nicht ausführen. Das console.log zur Probe geht auch nicht. HTML wird generell ls erstes gelden bevor Java Script ausgeführt wird richtig? also window.onload ist eigentlich unnötig oder? liegt das Problem villeicht am window.onload im zweiten Block? Wenn ich den Codepart dort einfüge funktioniert es auch nicht. aber was in window.onload mit der anonymen funktion steht klappt.
function shuffleCards() {
console.log("Funktion wurde aufgerufen");
const deck = document.querySelector('.cardsGrundgeruest'); // Auswahl des Kartenstapels
const cards = Array.from(deck.children); // Alle Kinder (Karten) aus dem Deck holen
console.log("Vor dem Mischen:");
cards.forEach(card => {
console.log(card.className); // Gibt die Klasse (Kartenname) der Karte aus
});
// Zufälliges Mischen der Karten
for (let i = cards.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[cards, cards[j]] = [cards[j], cards]; // Karten tauschen
}
// Entferne alle Karten mit removeChild und füge sie in gemischter Reihenfolge neu hinzu
while (deck.firstChild) {
deck.removeChild(deck.firstChild); // Karten entfernen
}
cards.forEach(card => {
deck.appendChild(card); // Gemischte Karten neu einfügen
});
console.log("Nach dem Mischen:");
cards.forEach(card => {
console.log(card.className); // Gibt die Klasse (Kartenname) der Karte aus
});
}
function shuffleCards() {
console.log("Funktion wurde aufgerufen");
const deck = document.querySelector('.cardsGrundgeruest'); // Auswahl des Kartenstapels
const cards = Array.from(deck.children); // Alle Kinder (Karten) aus dem Deck holen
console.log("Vor dem Mischen:");
cards.forEach(card => {
console.log(card.className); // Gibt die Klasse (Kartenname) der Karte aus
});
// Zufälliges Mischen der Karten
for (let i = cards.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[cards, cards[j]] = [cards[j], cards]; // Karten tauschen
}
// Entferne alle Karten mit removeChild und füge sie in gemischter Reihenfolge neu hinzu
while (deck.firstChild) {
deck.removeChild(deck.firstChild); // Karten entfernen
}
cards.forEach(card => {
deck.appendChild(card); // Gemischte Karten neu einfügen
});
console.log("Nach dem Mischen:");
cards.forEach(card => {
console.log(card.className); // Gibt die Klasse (Kartenname) der Karte aus
});
}