在编写动作事件的时候,想将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分离的也麻烦提供一下。搞了很久都搞不出来,麻烦大家帮个忙。
1 回答

斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
你的意思是划过 a,b,c的时候能得到他们对应的索引值0,1,2?
var nodelist=document.getElementById("title").getElementsByTagName("div");for(var i=0;i<nodelist.length;i++){ (function(x){ nodelist[x].addEventListener("mousemove",function(){ console.log(x) }) })(i) }
或者用let定义变量
for(let i=0;i<nodelist.length;i++){ nodelist[i].addEventListener("mousemove",function(){ console.log(i) }) }
添加回答
举报
0/150
提交
取消