2017-07-18 109 views
0

我是一個JavaScript的初學者,所以對於基本問題感到抱歉。 我寫了一個事件監聽器來按下按鈕時調用一個函數。 我不能得到它的工作。由於代碼現在位於解釋器 ,因此第8行addEventListener代碼不是函數,並且在我的頁面上不起作用 。有任何想法嗎?謝謝!添加事件監聽器不爲我工作

function createNewList() { 

var displayNow = document.getElementById('listSectionMain'); 
displayNow.setAttribute('class', 'hideThis'); 
} 

var butt = document.getElementsByClassName('buttonMain'); 
butt.addEventListener('click', function() { 
createNewList() } 
, false); 
+0

你也應該顯示出HTML代碼段「buttonMain」和內部html。這將有助於縮小這個問題的範圍。 –

回答

2

行更改爲

var butt = document.getElementsByClassName('buttonMain')[0]; 

獲取類名的元素實際上返回數組

編輯: 這會爲你的工作需要。

var butt = document.getElementsByClassName('buttonMain'); 
for(i=0;i<butt.length;i++){ 
    butt[i].addEventListener("click", createNewList); 
} 
+0

它做出了改變嗎? –

+0

那麼我有更多的代碼寫入這個函數。總共有四個按鈕可以按下,並且希望根據按下哪個按鈕來編寫功能開關語句。我知道我的代碼返回一個數組,但那沒關係吧?我以爲我基本上是將事件監聽器添加到所有四個按鈕,然後我會使用事件對象來查找哪個按鈕被按下。 –

+0

檢查我的編輯,應該處理你需要的東西 –

0

getElementsByClassName返回數組類數組對象

你可以這樣使用它...

function createNewList() { 
    var displayNow = document.getElementById('listSectionMain'); 
    displayNow.setAttribute('class', 'hideThis'); 
} 

var butt = document.getElementsByClassName('buttonMain'); 

butt[0].addEventListener("click", myFunction); 

function myFunction() { 
    alert ("Hello World!"); 
} 

在這裏你去JSFiddle

+0

這實際上適用於我,但循環過程更符合我的需求。感謝您的幫助。 –