嘗試一個例子:
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);
querySelectorAll似乎成爲你錯誤的原因。它返回一個空數組而不是nodeList。 –