查询getElementsByTagName中元素的数组索引号

在编写动作事件的时候,想将js部分和html部分完全分割出去,
首先是html中的元素:

<div id="show">
        <div id="title">
            <div>a</div>
            <div>b</div>
            <div>c</div>
        </div>
    </div>

也就是两个div;
按照我所知道的方法是:

window.onload=showChange;function showChange(){    var GO=document.getElementById("title");    
        for (var i = 0; i < GO.getElementsByTagName("div").length; i++) {
        GO.getElementsByTagName("div")[i].onmouseover=function(){                    #code
        }
    }
}

然后问题来了,我希望通过window.event.srcElement---当鼠标划过的时候输出对应的i值,或者是说,希望能够或的通过getElementsByTagName查找时,各个子div在数组中的索引号.
如果有其他的方法,只要是满足js和html分离的也麻烦提供一下。
搞了很久都搞不出来,麻烦大家帮个忙。


明月笑刀无情
浏览 626回答 1
1回答

斯蒂芬大帝

你的意思是划过 a,b,c的时候能得到他们对应的索引值0,1,2?var&nbsp;nodelist=document.getElementById("title").getElementsByTagName("div");for(var&nbsp;i=0;i<nodelist.length;i++){ &nbsp;&nbsp;&nbsp;&nbsp;(function(x){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nodelist[x].addEventListener("mousemove",function(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(x) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}) &nbsp;&nbsp;&nbsp;&nbsp;})(i) }或者用let定义变量for(let&nbsp;i=0;i<nodelist.length;i++){ &nbsp;&nbsp;&nbsp;nodelist[i].addEventListener("mousemove",function(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(i) &nbsp;&nbsp;&nbsp;}) }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript