我有个数组a(1,2,3)
我循环遍历输出a的值
<ul>
<li><a onclick="show();"><b>a[0]<b><a></li>
<li><a onclick="show();"><b>a[1]<b><a></li>
<li><a onclick="show();"><b>a[2]<b><a></li>
点击1,1变色,点击2,2变色,但1会变回原来的颜色.我show方法实现了其他的而功能

解决方案 »

  1.   

    <style type="text/css">
    .clckClass{color:red;}
    </style>
    <script type="text/javascript">
    $('ul li a').bind('click', function(){
    $('ul li a:not(this)').removeClass('clckClass');
    $(this).addClass('clckClass');
    });
    </script>
      

  2.   


    <style type="text/css">
        .clckClass{color:red;}
    </style>
    <script type="text/javascript">
      $('ul li a').bind('click', function(){
        $('.clckClass').removeClass('clckClass');
        $(this).addClass('clckClass');
      });
    </script>
      

  3.   

    2楼不要误导别人。
    样式‘clckClass‘可能在其他元素上使用,使用$('.clckClass').removeClass('clckClass');会将画面上所用使用clckClass样式的元素移出clckClass样式的。这显然不是我们要得结果,我们只需要移出ul li a下的clckClass样式。
      

  4.   


    其实二楼的也不错,唯一一点是那个clckClass只能在这几个标签使用,如果其他也用的话,就可能会影响效果
      

  5.   

    是我考虑不周到,我只考虑了clckClass这个样式只应用在这上面的情况,那么可以做一下小修改<style type="text/css">
     .clckClass{color:red;}
    </style> 
    <script type="text/javascript"> 
    var removeClassA = $('ul li a.clckClass');
    $('ul li a').bind('click', function(){ 
       removeClassA .removeClass('clckClass'); 
       $(this).addClass('clckClass'); 
       removeClassA  = $(this);
    }); 
    </script> 这样写将拥有clckClass这个类的节点保存在变量中,下一次点击时可以不用进行一次遍历,速度会快一点