晕死,你的命名很不规则。
改了下,注意li标签里和a标签中间不能有空格。要不然ff要出问题。
a标签和img标签同理。<ul id="ulid">
<li><a href="#"><img src="images/money_a1.gif" width="155" height="30" border="0"  id="img1"/></a></li>
<li><a href="#"><img src="images/money_b1.gif" width="155" height="30" border="0" id="img2"/></a></li>
<li><a href="#"><img src="images/money_c1.gif" width="155" height="30" border="0" id="img3"/></a></li>
<li><a href="#"><img src="images/money_d1.gif" width="155" height="30" border="0" id="img4"/></a></li>
<li><a href="#"><img src="images/money_e1.gif" width="155" height="30" border="0" id="img5"/></a></li>
<li><a href="#"><img src="images/money_f1.gif" width="155" height="30" border="0" id="img6"/></a></li>
</ul> <script>
var ulobj = document.getElementById("ulid")
var lis = ulobj.childNodes;
for(var i = 0;i<lis.length;i++) 
{
if(lis[i].childNodes[0])
{
lis[i].childNodes[0].childNodes[0].oldImg = lis[i].childNodes[0].childNodes[0].src;
lis[i].childNodes[0].childNodes[0].onclick = function(lis)
{
return function()
{
for(var i = 0;i<lis.length;i++)
{
if(lis[i].childNodes[0])
{
lis[i].childNodes[0].childNodes[0].src = lis[i].childNodes[0].childNodes[0].oldImg
}
}
this.src = this.src.toString().replace("1.gif","2.gif");
}
}(lis)
}
}</script>

解决方案 »

  1.   

    <script>

    function changeimg(img)
    {
    var arr_img = Array(img1,img3,img4,img5,img6);
    var arr_img_off = Array("1.jpg","3.jpg","4.jpg","5.jpg","6.jpg");
    var arr_img_on = Array("6.jpg","5.jpg","4.jpg","3.jpg","1.jpg");

    var img_count = arr_img.length;
    for(var i=0;i<img_count;++i)
    {
    if(img == arr_img[i])
    {
    arr_img[i].src = arr_img_on[i];
    }
    else
    {
    arr_img[i].src = arr_img_off[i];
    }
    }
    }
    </script><ul> 
    <li> <a href="#" onclick="changeimg(img1);"> <img src="1.jpg" width="155" height="30" border="0"  id="img1"/> </a> </li> 
    <li> <a href="#" onclick="changeimg(img3);"> <img src="3.jpg" width="155" height="30" border="0" id="img3"/> </a> </li> 
    <li> <a href="#" onclick="changeimg(img4);"> <img src="4.jpg" width="155" height="30" border="0" id="img4"/> </a> </li> 
    <li> <a href="#" onclick="changeimg(img5);"> <img src="5.jpg" width="155" height="30" border="0" id="img5"/> </a> </li> 
    <li> <a href="#" onclick="changeimg(img6);"> <img src="6.jpg" width="155" height="30" border="0" id="img6"/> </a> </li> 
    </ul> 
      

  2.   

    想问2楼一个问题..
    <img> 标签中就有一个id 属性为什么不直接用,
    而是要从 <ul>标签这层..一层一层的得到 这个img 对象呢?
    <img src="images/money_a1.gif" width="155" height="30" border="0"  id="img1"/>
    如:
    lis[i].childNodes[0].childNodes[0].oldImg = lis[i].childNodes[0].childNodes[0].src; 
    可以写成: document.getElementById("img1").oldImg = document.getElementById("img1").src;
    我感觉这样挺好理解的.
      

  3.   


    呵呵,简化html后期html修改的复杂性。比如在服务器端用repeater循环的时候,还要用一个递增去赋值。
      

  4.   

    用Id 的话 在for循环中比较麻烦吧