回答
首先你可以給每個按鈕一個data-clicks
屬性。其中包含此按鈕的點擊次數。
每當用戶點擊任何按鈕,檢查data-clicks
屬性值是否等於5.然後禁用該按鈕。否則只是增加存儲在data-clicks
例數
只能點擊5次爲每個按鈕,該按鈕將被禁用
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">
我刪除了數組,因爲不需要它。也沒有它會動態與你的HTML按鈕。你可以很容易地刪除或添加按鈕,未經任何編輯爲你的JavaScript代碼
UPDATE
您的jsfiddle可以嵌入我的代碼在你myno
功能這樣https://jsfiddle.net/bhoLbu8x/5/
是這樣的:
而不是按鈕我放1,2,3,4因爲按鈕是以這種格式自動創建的? –@raakobihai我更新它採取索引,而不是價值。你的依賴對我來說並不明確。 –
好吧,我在js中有一個代碼,每次人們按下按鈕時都會創建一個文本字段。按鈕標籤/名稱中沒有任何獨特的所有按鈕都是相同的。但是在按鈕id中,它從1開始遞增,例如,等等。每次單擊按鈕創建文本字段時,我都希望增加陣列相應位置的值。所以我的按鈕id =數組中的位置。這仍然適用於這個嗎? –
希望這給你一些想法:
var h = [2, 4, 6, 3, 4, 2, 7];
var button = document.getElementsByTagName('button');
var placementOfValueReaches5 = [];
h.forEach(function(value, index){
if (value >= 5){
button[index].setAttribute('disabled', true);
placementOfValueReaches5.push(index);
}
});
console.log(placementOfValueReaches5); // outputs [2, 6]
更多關於Array.prototype.forEach
here的信息。
這是否也禁用了按鈕? –
是的。 'button [index] .setAttribute('disabled',true)''行禁用了按鈕。 –
你對問題的修改徹底改變了問題和適當的解決方案 –
- 1. 單擊事件按鈕5次點擊後禁用按鈕
- 2. 按鈕點擊多次點擊一次
- 3. 點擊一次後不可點擊按鈕
- 4. Android按鈕可以只點擊一次
- 5. 再次點擊按鈕點擊
- 6. 按鈕點擊點擊事件兩次
- 7. 點擊提交按鈕後點擊f5
- 8. 按鈕不可點擊 - 禁用點擊
- 9. 按鈕點擊兩次後回發
- 10. 第一次點擊後關閉按鈕
- 11. 每次按鈕被點擊
- 12. 按鈕點擊兩次
- 13. 第一次點擊按鈕
- 14. 點擊次數按鈕
- 15. HTML一次點擊按鈕
- 16. Reactjs - 按鈕點擊時的componentWillReceiveProps - 按鈕點擊兩次後失敗
- 17. 按鈕被點擊5次後如何顯示圖像
- 18. PhoneGap點擊後退按鈕模擬點擊主頁按鈕
- 19. C#按鈕2只能是點擊後按鈕1點擊
- 20. Android - 快速點擊後,點擊按鈕的按鈕停止
- 21. 按鈕被點擊後,另一個按鈕就不會點擊
- 22. 如何使按鈕點擊後不可點擊?
- 23. 切換按鈕需要2次點擊一次初始點擊
- 24. 禁用按鈕後點擊
- 25. 禁用按鈕後點擊
- 26. 按鈕點擊幕後?
- 27. JS後退按鈕點擊
- 28. 點擊提交後按鈕
- 29. 點擊停止後按鈕向下滾動屏幕,再次點擊後再次點擊
- 30. 按鈕僅在X秒後可點擊
確實有可能得到所有值大於等於5的指數。但在你的情況下,可能有其他解決方案。你在哪裏改變數組值?你可以引入一個setter方法來改變給定索引處的數組值,同時如果值> 5,則禁用相應的按鈕。 –