<head runat="server">
    <title></title>
 
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <span id="A1">16.39</span><br />
        <br />
        <span id="A2">11239</span> 
        <br />
        <span id="Span2">112239</span>
    </div><span id="Span1">116.39</span><br />
    </form>
</body><script type="text/javascript">    var obj = document.getElementsByTagName("span");    for (var i = 0; i < obj.length; i++) {
        var span = document.getElementById(obj[i].id);        span.onmouseover = function() { span.style.color = "#FF9900"; };        span.onmouseout = function() { span.style.color = "#FFFFFF"; };
    } </script></html>
想给每个span 绑定onmouseover , onmouseout 为啥这样写有问题? 4个实现了onmouseout,只有最后一个实现了onmouseover?
javascript

解决方案 »

  1.   

    Try this:
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head runat="server">
        <title></title>
     
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <span id="A1">16.39</span><br />
            <br />
            <span id="A2">11239</span> 
            <br />
            <span id="Span2">112239</span>
        </div><span id="Span1">116.39</span><br />
        </form>
    </body><script type="text/javascript">    var obj = document.getElementsByTagName("span");    for (var i = 0; i < obj.length; i++) {
         obj[i].onmouseover = function() { this.style.color = "#FF9900"; };     obj[i].onmouseout = function() { this.style.color = "#FFFFFF"; };
        }</script></html>
      

  2.   

    Replace your script with this:    var obj = document.getElementsByTagName("span");    for (var i = 0; i < obj.length; i++) {
         obj[i].onmouseover = function() { this.style.color = "#FF9900"; };     obj[i].onmouseout = function() { this.style.color = "#FFFFFF"; };
        }
      

  3.   

            span.onmouseover = function() { this.style.color = "#FF9900"; };
            span.onmouseout = function() { this.style.color = "#9F0"; };
      

  4.   


    <style type="text/css">
    .a{
    background-color:#FF9900;
    }
    .b{
    background-color:#FFFFFF;
    }
    </style>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/javascript">
    $(function(){
    $("span").mouseover(function(){
    $(this).removeClass("b").addClass("a");
    });
    $("span").mouseout(function(){
    $(this).addClass("b");
    });
    })
    </script>
      

  5.   

    确实就是函数中的变量作用域问题,调用函数时span根本不是你以为的span变量;另外用关键词或者html标签来做变量名不好,如果你是其他的变量名就会发现报错了。
      

  6.   


    var obj = document.getElementsByTagName("span");for (var i = 0 , j = obj.length; i < j; i++) {
    (function(span){
    span.onmouseover = function() { span.style.color = "#FF9900"; };
    span.onmouseout = function() { span.style.color = "#FFFFFF"; };
    })(obj[i]);
    }