尝试一个例子:
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。 –