这样试试呢
//obj.onmouseover=function() {this.firstChild.src='images/'+i+'.gif'};
obj.href = i;

解决方案 »

  1.   

    把function拿出去做成一个全局函数
      

  2.   

    Try:修改一行,增加一函数。obj.onmouseover=CreateFunction(i);
    function CreateFunction(i)
    {
      var fn = function(e){
        e.srcElement.firstChild.src='images/'+i+'.gif';
      };
      return fn;
    }
      

  3.   

    http://book.21www.cn/info/web/JavaScript/12781.html
      

  4.   

    http://realazy.org/blog/2006/07/06/first-child-js-ie/
      

  5.   

    obj.onmouseover= new Function('this.firstChild.src="images/' + i + '.gif"')
      

  6.   

    不过看你代码 
    var myArray=document.getElementById("menu").document.getElementsByTagName("A") ;
    你说这里menu是一个table(我还以为是iframe),如果是同窗口的一个table 就不用第二个document了,改成这样:
    var myArray=document.getElementById("menu").getElementsByTagName("A") ;
      

  7.   

    http://bbs.51js.com/thread-64080-1-4.html
      

  8.   

    for(var i = 0; i < Length; i++)
    {
    obj=myArray[i];
    obj.onmouseover=function() {this.firstChild.src='images/'+i+'.gif'};
    }
    从代码上分析。。当你onmouseover的时候指针指向了你写的那个function(每个onmouseover都对应一个function(但是相对应的每个function里的代码都是一样的是:{this.firstChild.src='images/'+i+'.gif'};但是这个function的内容可是很“纯洁”的。里面根本就没有i这个变量。(不知道明不明白我的意思)解决的方法很简单,可以用new Function("this.firstChild.src=\"images/" + i + "\";");
    这样每一个onmouseover都对应内容不同的function{this.firstChild.src="images/0.gif"}
    ....
      

  9.   

    不好意思。。弄错了。。
    那个function里面的i调用的是外面的i就是for的那个i
    但是执行到最后那个i就变成了Length
    所以就没有找到图片。。
    那个闭包就相当于在弄个function把那个i存到里面
    比如这样
    for(var i = 0; i < Length; i++) {
    obj = myArray[i];
    obj.onmouseover = (function (i) {
    return function () {
    this.firstChild.src = "images/" + i + ".gif";
    };
    })(i);
    }
    每次循环都生成一个function ()那个匿名的函数。
    这个函数接收了i。然后返回这个函数里的一个function,所以调用的时候这个返回的function找到的i是那个生成的匿名函数里的i
    (就相当于用这个匿名函数保存了这个i变量。。)
      

  10.   

    给function()中带参数. 希望楼主把整爷效果贴出来.好帮你改.var myArray=document.getElementById("menu").document.getElementsByTagName("A") ;
    var Length = myArray.length;
    var locatobj;
    for(var i = 0; i < Length; i++)
    {
    obj=myArray[i];
    obj.onmouseover=function(i) {this.firstChild.src='images/'+i+'.gif'};
    }
    这是一个给网页中Table名为menu中的<a>添加onmouseover修改他们的相应图片的代码
    //过程中找到了五个<a>
    添加onmouseover为this.firstChild.src='images/'+i+'.gif'
    开始的时候i为0,1,2,3,4
    但因为事件过后触发的就全都变成this.firstChild.src='images/5.gif'了
    请问一下
    this.firstChild.src='images/'+i+'.gif'
    这里要怎么改才会相应为0,1,2,3,4
    而不是全为
    this.firstChild.src='images/5.gif'