<script type="text/javascript">
window.onload = function () {
var Lis = document.getElementsByTagName("li");
for (i = 0; i < Lis.length; i++) {
Lis[i].i = i;
//设置鼠标移入时的样式。
Lis[i].onmouseover = function () {
this.className = "lihover";
}
//设置鼠标移开时的样式为空。
Lis[i].onmouseout = function () {
this.className = "";
}
}
}
</script>
从字面解释就是:把变量i的值赋值给Lis[i]元素的i属性。这条语句主要用于获取每个<li>元素上边沿到顶部的距离。"Lis[i].i=i;"中有三个i,从左到右,第一个和第三个是相同的意思,表示存放<li>元素的数组Lis的下标。中间的i是动态添加给数组对象的属性(数组也是对象,所以可以动态添加属性)。
PS:题注代码没贴全,这条语句是给下面代码中注释部分用的。
<script type="text/javascript"> window.onload = function () { var Lis = document.getElementsByTagName("li"); for (i = 0; i < Lis.length; i++) { Lis[i].i = i; Lis[i].onmouseover = function () { this.className = "lihover"; var h0 = (this.i - 1) * 30 + 42;//*获取li上边沿到顶端的距离 var y = this.getElementsByTagName("div")[0].offsetHeight; var h = this.getElementsByTagName("div")[0].style.top + y; if (h < h0) { this.getElementsByTagName("div")[0].style.top = h0 + "px"; } if (y > 550) { this.getElementsByTagName("div")[0].style.top = "3px"; } } Lis[i].onmouseout = function () { this.className = ""; } } } </script>