2012-05-15 245 views
0

我有一個小問題,我無法從'塊'組中刪除選定的類。當我點擊每個選項卡X時,它應該清除任何「塊」元素上的「選定」類,然後應用「選定」類到已單擊的選項卡的父節點。標籤香草javascript

我不斷收到錯誤,「Uncaught TypeError:Can not call method'remove'of undefined」。下面是的jsfiddle http://jsfiddle.net/kas187/r4HLd/1/

+0

querySelectorAll似乎成爲你錯誤的原因。它返回一個空數組而不是nodeList。 –

回答

0

嘗試一個例子:

window.addEventListener('DOMContentLoaded', function() { 
    Array.prototype.slice.call(document.querySelectorAll('.block .tab')).forEach(function (el) { 
     el.addEventListener('click', function() { 
      document.querySelector('.block.selected').classList.remove('selected'); 
      this.parentNode.classList.add('selected'); 
     }, false); 
    }); 
}, false);​ 

演示:http://jsfiddle.net/QGZvN/3/

或這一點,如果你不喜歡切片方法

// inside the for-block 
tabbedblocks[i].querySelector('.tab').addEventListener('click', function() { 
    document.querySelector('.block.selected').classList.remove('selected'); 
    this.parentNode.classList.add('selected'); 
}, false); 
+0

Yoshi多數民衆贊成完美。謝謝! – Qasim