我試圖爲我的程序中有一個子項的每個按鈕添加一個onclick
事件。最初,當我使用getElementsByClassName
時,我並不知道它返回一個數組(與事後明顯不同),不像getElementById
,它只返回一個項目。所以我編輯我的代碼迭代對所有按鈕元素,但仍無濟於事:爲for循環中的每個項添加一個onclick處理函數
window.addEventListener('DOMContentLoaded', run);
function run(){
allLIElements = document.getElementsByTagName("button")
for (i=0; i < allLIElements.length; i++){
var li = allLIElements[i];
if (li.firstElementChild != null){
li.classList.add('myBtn');
// tests whether or not the element has been given the proper class
document.getElementById('check').innerHTML = li.classList;
}
};
}
//**Returns an HTMLcollection not a nodeList**
var btn = document.getElementsByClassName("myBtn");
var span = document.getElementsByClassName("close")[0];
var modal = document.getElementById('myModal');
for (i=0; i < btn.length; i++){
btn[i].onclick = function() {
modal.style.display = "block";
};
}
// When the user clicks on <span> (x), close the modal
span.onclick = function() {
modal.style.display = "none";
}
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
編輯
這裏有一個鏈接顯示發生了什麼,所以現在當我點擊「客戶6「,例如我想要一個模式出現:https://jsfiddle.net/0k617jsq/
基本上沒有什麼事情發生時,我點擊按鈕,模態不激活。
有沒有在瀏覽器中的任何錯誤** **開發工具控制檯 –
查找到的addEventListener https://developer.mozilla.org/en-US/docs/Web/API/ EventTarget/addEventListener –
@RobG它曾經是LI的列表,但我改變了它,我不認爲這是問題,因爲模態仍然不活動 – Amon