對於$(this).index();錯誤理解的糾正

$(this).index()返回的是該節點在兄弟節點中排行第幾,從0開始計數

注意是同一父級元素的兄弟節點!!!不能跨級!!!

如:

<tr id="lesson12">
   <td>1<br>2</td>
   <td class="am_text_middle"><span class="time_check12">0</span></td>
   <td class="am_text_middle"><span class="time_check12">1</span></td>
   <td class="am_text_middle"><span class="time_check12">2</span></td>
   <td class="am_text_middle"><span class="time_check12">3</span></td>
   <td class="am_text_middle"><span class="time_check12">4</span></td>
</tr>


$(".time_check12").click(function(){
    console.log($(this).index());  
})
無論點擊以上的哪個span內的元素,控制檯打印出來的都是 0

因爲在span的父級td下就一個span元素

我最開始錯誤的想法是:該方法是根據class屬性名來確定當前元素的index位置的,換句話說就是有同樣的class屬性名的節點,無論它是否是兄弟節點,是否有同一個父級,我都從開始往後數它是第幾個有這個class屬性名的節點那麼它的index位置就是相應的值


$(".am_text_middle").click(function(){
    console.log($(this).index());  
})
點擊第一個class屬性爲am_text_middle的元素,控制檯打印出來的值爲 1

該元素在td節點內,並且該元素所屬的這個td節點在其兄弟節點td中它是排行第2個,所以它的index值就該是1

一開始我非常不明白爲什麼會是1,不應該是0麼,此時我的思想還是根據class屬性名來確定當前元素的index位置的


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章