<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script type="text/javascript">
window.onload=function()
{
var d = document.getElementById("leftMenu").getElementsByTagName("li");for(i=0;i<d.length;i++)
{
d[i].onclick=function()
{
for(j=0;j<8;j++)
{
if(this==d[j])//请问:这条语句是什么意思。为什么要加这条语句呢?
{
alert(d[j].innerHTML);  }
}
}
}
}
</script>
</head>
<body>
<div id="main">
<div id="leftMenu">
  <ul>
  <li>栏目一</li>
<li>栏目二</li>
  <li>栏目三</li>
  </ul>
</div>
</div> 
</div>
</body>
</html>***************
if(this==d[j])//请问:这条语句是什么意思。为什么要加这条语句呢?

解决方案 »

  1.   

    为什么这个this就能够判断呢?this是什么意思。
      

  2.   

    this是一个变化的对象。表明当前函数在哪个对象内发生。
    根对象是window,但随后就要根据发展看了。
    在这里,this是用在d[i].onclick的函数里,所以它代表的是点击的li对象。
    这个程序不解释了,因为它写得很差劲,如果只是完成它现在所完成的功能,根本不应该这么写。
    直接把里面那一层循环去掉(除非必要,否则这种没事加循环遍历的方法实在太垃圾):
    <script type="text/javascript">
    window.onload=function()
    {
    var d = document.getElementById("leftMenu").getElementsByTagName("li");
    for(i=0;i<d.length;i++)
    {
    d[i].onclick=function()
    {
    alert(this.innerHTML);
    }
    }
    }
    </script>