2 回答

TA貢獻1786條經驗 獲得超11個贊
奇數索引號可以通過以下示例來解釋:
document.getElementById('slides').onclick=handleSlideClick;
function handleSlideClick() {
let clickedSlide = event.target;
let clickedSlideIndex= Array.prototype.indexOf.call(clickedSlide.parentNode.childNodes, clickedSlide);
console.log(clickedSlide,clickedSlideIndex);
}
.slide {display:inline-block}
<div id="slides">
<div class="slide">one</div>
<div class="slide">two</div>
<div class="slide">three</div>
<div class="slide">four</div>
<div class="slide">five</div>
<div class="slide">six</div>
</div>
這里每個節點div.slide后面都有一個 (“非換行空格”)節點。在索引計數中,這個小實體也很重要!如果你想避免這種情況發生,你可以替換.childNodes為.children:
document.getElementById('slides').onclick=handleSlideClick;
function handleSlideClick() {
let clickedSlide = event.target;
let clickedSlideIndex= Array.prototype.indexOf.call(clickedSlide.parentNode.children, clickedSlide);
console.log(clickedSlide,clickedSlideIndex);
}
.slide {display:inline-block}
<div id="slides">
<div class="slide">one</div>
<div class="slide">two</div>
<div class="slide">three</div>
<div class="slide">four</div>
<div class="slide">five</div>
<div class="slide">six</div>
</div>

TA貢獻1840條經驗 獲得超5個贊
你可以這樣嘗試
slides.forEach((slide, index) => {
slide.onclick = () => handleSlideClick(index)
});
function handleSlideClick(index) {
console.log(index) // prints the index
// some stuff..
}
添加回答
舉報