<html>
<head>
<title></title> </head>
<body>
<ul id="list">
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
</ul>
</body>
</html>要求如下 用JS实现
<script language="JavaScript1.2">
function changetitle(){
var list1 = document.getElementById("list");
var list2=list1.getElementsByTagName("li");
for (var i = 0; i < list2.length; i++) {

}
}
          changetitle();
</script>现在可以取到上边的标签了
我想要在鼠标移动到数字上的时候可以动态的修改标题 就是document.title 
2个要求  1:可以在鼠标移动到什么地方 title显示 文字的内容
         2. 可以在鼠标移动到什么地方 title显示文字所在的行数
 请分别实现 谢谢了

解决方案 »

  1.   

    循环时用闭包保存变量i,这个你知道怎么弄的话,这个两个问题都OK了
      

  2.   


    <!DOCTYPE html>
    <html>
    <head>
    <title>Test</title>
    <meta http-equiv="Content-Type" content="text/html;charset=gb2312">
    <script type="text/javascript">//<![CDATA[
    window.onload = function(){
      var vLi = document.getElementsByTagName("li");
      for(var i = 0; i < vLi.length; i++){
        vLi[i].onmouseover = function(){
          this.title = "我是第"+i+"行\n"+"title:"+this.innerHTML;
        };  }
    }
    //]]></script>
    </head>
    <body>
    <ul>
    <li>我是行1</li>
    <li>我是行2</li>
    <li>我是行3</li>
    <ul>
    </body>
    </html>
      

  3.   

    不知道你要求的是不是这样的代码:   <html>
    <head>
    <title></title></head>
    <body>
    <ul id="list">
    <li>a</li>
    <li>b</li>
    <li>c</li>
    <li>d</li>
    <li>e</li>
    </ul>
    <p id="sx"></p>
    </body>
    </html>要求如下 用JS实现
    <script language="JavaScript1.2">
    function changetitle(){
    document.title="我有2个要求";
    var list=document.getElementById("list").getElementsByTagName("li");
    for (var i = 0; i < list.length; i++) {
        list[i].index=i;
        list[i].onmouseover=function(i){
         document.title="<font color='red'>该行内容为:"+this.innerHTML+",行数为:"+(this.index+1)+"</font>";
     document.getElementById('sx').innerHTML="<font color='red'>看最上面浏览器标题,该行内容为:"+this.innerHTML+",行数为:"+(this.index+1)+"</font>";
        }   }
    }
      window.onload=changetitle;
    </script>
      

  4.   

        请教一下闭包,我的方法没用闭包,而是添加属性来保存每个循环索引值的!如果不多添加那个this.index属性,那么值永远都是循环的最后一个i。   闭包的方法肯定也可以,但是不知道具体怎么实现了,特请教,谢谢!
      

  5.   

    上面那个用属性,再给一个闭包的例子,如下:<html>
    <head>
    <title></title>
    </head>
    <body>
    <ul id="list">
    <li>a</li>
    <li>b</li>
    <li>c</li>
    <li>d</li>
    <li>e</li>
    </ul>
    <p id="sx"></p>
    </body>
    </html>要求如下 用JS实现
    <script language="JavaScript1.2">
    function changetitle(){
    document.title="我有2个要求";
    var list=document.getElementById("list").getElementsByTagName("li");
    for (var i = 0; i < list.length; i++) {
        //list[i].index=i;
        (function(i){
      
      list[i].onmouseover=function(){
         document.title="<font color='red'>该行内容为:"+this.innerHTML+",行数为:"+(i+1)+"</font>";
     document.getElementById('sx').innerHTML="<font color='red'>看最上面浏览器标题,该行内容为:"+this.innerHTML+",行数为:"+(i+1)+"</font>";
              }
      })(i);   }
    }
      window.onload=changetitle;
    </script>
      

  6.   

    的确是用闭包!先不管第一个了 我现在写不下去了 就是把鼠标悬停在文本上然后 titiel显示文本的行数闭包的问题不是很清楚!谁能先把完整的代码实现让我看看
      

  7.   

    这样
    <html>
    <head>
    <title></title> </head>
    <body>
    <ul id="list">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    </ul>


    <script language="JavaScript1.2">
    function changetitle(){
    var list1 = document.getElementById("list");
    var list2=list1.getElementsByTagName("li");
    for (var i = 1; i < list2.length; i++) {
    (function(){
    var x=i;
    list2[i].onmouseover=function(){
    document.title=x;
    }
    })();
    }

    }
    changetitle();
    </script>
    </body>
    </html>