Als Erstes können Sie jedem Knopf ein data-clicks
Attribut geben. enthält die Anzahl der Klicks für diese Schaltfläche.
Jedes Mal, wenn der Benutzer auf eine Schaltfläche klickt, überprüfen Sie data-clicks
Attributwert, wenn es gleich 5 ist. Deaktivieren Sie dann die Schaltfläche. sonst erhöhen nur die in data-clicks
Beispiel gespeicherte Nummer
können Sie nur 5-mal für jede Schaltfläche klicken, danach auf die Schaltfläche
let btns = document.querySelectorAll(".my-btn"), btn = null;
for (let i = 0; i < btns.length; i += 1) {
btns[i].onclick = function() {
this.setAttribute('data-clicks', Number(this.getAttribute('data-clicks')) + 1)
if (this.getAttribute('data-clicks') === '5') {
this.setAttribute('disabled', 'disabled');
}
}
}
<input type="button" class="my-btn" value="button 1" data-clicks="0">
<input type="button" class="my-btn" value="button 2" data-clicks="0">
<input type="button" class="my-btn" value="button 3" data-clicks="0">
<input type="button" class="my-btn" value="button 4" data-clicks="0">
<input type="button" class="my-btn" value="button 5" data-clicks="0">
deaktiviert werden
Ich habe das Array entfernt, weil es nicht nötig ist. auch ohne es wird dynamisch mit Ihren HTML-Buttons arbeiten. Sie können ganz einfach Tasten Code ohne Änderungen für Ihre JavaScript
UPDATE
für Ihren jsfiddle Sie meinen Code in Ihre myno
Funktion wie diese einbetten können https://jsfiddle.net/bhoLbu8x/5/
Es ist in der Tat möglich, die Indizes aller Werte> 5 zu erhalten. Aber in Ihrem Fall könnte es eine alternative Lösung geben. Wo ändern Sie die Array-Werte? Sie könnten eine Setter-Methode einführen, die einen Array-Wert an einem bestimmten Index ändert und gleichzeitig die entsprechende Schaltfläche bei Wert> 5 deaktiviert. –