使用 Array.prototype.forEach、.querySelectorAll 和 .addEventListener 的原生 JavaScript 实现。
如果每个<div>只有一个<a>
Array.prototype.forEach.call( // for each
document.querySelectorAll('#container a'), // <a> in #container
function (elm, idx, arr) { // get it's info (index etc.) then
elm.addEventListener('click', function () {console.log(idx);}, false);
// make clicking it log it's index
}
);
或者如果每个<div>有很多<a>s
Array.prototype.forEach.call( // for each
document.querySelectorAll('#container div'), // <div> in #container
function (elm, idx, arr) { // get it's info (index etc.) then
Array.prototype.forEach.call( // loop over each
elm.querySelectorAll('a'), // <a> in that <div>
function (a_elm, a_idx, a_arr) { // and
a_elm.addEventListener('click', function () {console.log(idx);}, false);
// make clicking it log the index of the <div>
}
);
}
);
注意记录的索引将从0 开始为第一个。