没有图片,拿字代替的,可以参考下,图片的话可以换URL就不用换style了
<span onclick=show(this)>星</span><span onclick=show(this)>星</span><span onclick=show(this)>星</span><span onclick=show(this)>星</span><span onclick=show(this)>星</span>
<script language=javascript>
function show(obj)
{
var obj2=obj
while((obj2.nextSibling!=null)&&(obj2.nextSibling.tagName=="SPAN"))
{
obj2.style.color="black"
obj2=obj2.nextSibling
}
obj2.style.color="black"
while((obj.previousSibling!=null)&&(obj.previousSibling.tagName=="SPAN"))
{
obj.style.color="red"
obj=obj.previousSibling
}
obj.style.color="red"
}
</script>

解决方案 »

  1.   

    十分感谢老大的帮忙!我改成了如下,可没点击反映,请问那里不对?
    <script language=javascript>
    function show(obj)
    {
    var obj2=obj
    while((obj2.nextSibling!=null)&&(obj2.nextSibling.tagName=="SPAN"))
    {
    obj2.src='../images/tb_25.jpg'
    obj2=obj2.nextSibling
    }
    obj2.src='../images/tb_25.jpg'
    while((obj.previousSibling!=null)&&(obj.previousSibling.tagName=="SPAN"))
    {
    obj2.src='../images/tb_23.jpg'
    obj=obj.previousSibling
    }
    obj2.src='../images/tb_23.jpg'
    }
    </script>
    <tr> 
                            <td width="69">rating:</td>
                            <td width="50%" > 
    <span onclick=show(this)><img src="../images/tb_25.jpg" width="18" height="21" > </span>
    <span onclick=show(this)><img src="../images/tb_25.jpg" width="18" height="21" > </span>
    <span onclick=show(this)><img src="../images/tb_25.jpg" width="18" height="21" > </span>
    <span onclick=show(this)><img src="../images/tb_25.jpg" width="18" height="21" > </span>
    <span onclick=show(this)><img src="../images/tb_25.jpg" width="18" height="21" > </span>
                            </td>
    </tr>
      

  2.   

    这句改下
    obj2.childNodes[0].src='../images/tb_25.jpg'
    还有下面的
      

  3.   

    <style>
    a{color:gray;text-decoration:none;}
    a.gold{color:gold;text-decoration:none;}
    </style>
    <a href="javascript:void()">*</a><a href="javascript:void()">*</a><a href="javascript:void()">*</a><a href="javascript:void()">*</a><a href="javascript:void()">*</a>
    <script>
    var $A = function(v) {
      if (!v) return [];
      if (v.toArray) {
        return v.toArray();
      } else {
        var arr = [];
        for (var i = 0; i < v.length; i++)
          arr.push(v[i]);
        return arr;
      }
    }Array.prototype.getPart = function(f) {   
      for(var i=0;i<this.length;i++)  if (f(this[i])) return [this.slice(0,i+1),this.slice(i+1)]
    }Array.prototype.map = function(f) { 
      var arr=[]
      for(var i=0;i<this.length;i++) arr.push(f(this[i]))
      return arr  
    }var f=function(o){
    o.onclick=o.onmouseover=function(){
    event.returnValue=false;
    var arr=links.getPart(function(x){if (eval(x)==event.srcElement) return x})
    arr[0].map(function(x){x.className="gold"})
    arr[1].map(function(x){x.className=""})
    }
    }var links=$A(document.links)
    links.map(f) 
    </script>
      

  4.   

    把图片改下地址,现在地址是用的CSDN的
    <script language=javascript>
    function show(obj)
    {
    var obj2=obj
    while((obj2.nextSibling!=null)&&(obj2.nextSibling.tagName=="SPAN"))
    {
    obj2.childNodes[0].src='http://zi.csdn.net/30060.gif'
    obj2=obj2.nextSibling
    }
    obj2.childNodes[0].src='http://zi.csdn.net/30060.gif'
    while((obj.previousSibling!=null)&&(obj.previousSibling.tagName=="SPAN"))
    {
    obj.childNodes[0].src='http://community.csdn.net/logo/images/prj.210.67.gif'
    obj=obj.previousSibling
    }
    obj.childNodes[0].src='http://community.csdn.net/logo/images/prj.210.67.gif'
    }
    </script><span onclick=show(this)><img src="http://zi.csdn.net/30060.gif" width="18" height="21" > </span>
    <span onclick=show(this)><img src="http://zi.csdn.net/30060.gif" width="18" height="21" > </span>
    <span onclick=show(this)><img src="http://zi.csdn.net/30060.gif" width="18" height="21" > </span>
    <span onclick=show(this)><img src="http://zi.csdn.net/30060.gif" width="18" height="21" > </span>
    <span onclick=show(this)><img src="http://zi.csdn.net/30060.gif" width="18" height="21" > </span>
      

  5.   

    Go_Rush(阿舜) :
    感谢你的代码,我刚看见,也试了,你的这个效果完全是我要的(包括鼠标移动的效果),可我怎么放到我的代码了,点击就报语法错误呢?
    <script>
    var $A = function(v) {
      if (!v) return [];
      if (v.toArray) {
        return v.toArray();
      } else {
        var arr = [];
        for (var i = 0; i < v.length; i++)
          arr.push(v[i]);
        return arr;
      }
    }Array.prototype.getPart = function(f) {   
      for(var i=0;i<this.length;i++)  if (f(this[i])) return [this.slice(0,i+1),this.slice(i+1)]
    }Array.prototype.map = function(f) { 
      var arr=[]
      for(var i=0;i<this.length;i++) arr.push(f(this[i]))
      return arr  
    }var f=function(o){
    o.onclick=o.onmouseover=function(){
    event.returnValue=false;
    var arr=links.getPart(function(x){if (eval(x)==event.srcElement) return x})
    arr[0].map(function(x){x.className="gold"})
    arr[1].map(function(x){x.className=""})
    }
    }var links=$A(document.links)
    links.map(f) 
    </script><a href="javascript:void()"><img src="../images/tb_25.jpg" width="18" height="21" > </a>
    <a href="javascript:void()"><img src="../images/tb_25.jpg" width="18" height="21" > </a>
    <a href="javascript:void()"><img src="../images/tb_25.jpg" width="18" height="21" > </a>
    <a href="javascript:void()"><img src="../images/tb_25.jpg" width="18" height="21" > </a>
    <a href="javascript:void()"><img src="../images/tb_25.jpg" width="18" height="21" > </a>
      

  6.   

    要用到节点这么麻烦,为什么不给每个img一个id,比如img1 ,img2,img3,img4,img5
    onclick=show(4),然后写一个循环,把document.getElementById("img"+i).src改了
      

  7.   

    你为什么一定要用图呢,可以用五角星啊
    http://post.baidu.com/f?kz=27823265  里面复制一个五角星就可以啊该死的CSDN,不让贴五角星的哪个图,我只好用*代替代码是没有问题,因为你在link中加了 img  event.srcElement指向了 img对象,所以要改下面这句
    var arr=links.getPart(function(x){if (eval(x)==event.srcElement) return x})
      

  8.   

    <span id=o>
    <a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a>
    </span>
    <!--这里 gray.gif为灰色五角星图片,gold为金色五角星图片--><script>
    var $A = function(v) {
      if (!v) return [];
      if (v.toArray) {
        return v.toArray();
      } else {
        var arr = [];
        for (var i = 0; i < v.length; i++)
          arr.push(v[i]);
        return arr;
      }
    }Array.prototype.getPart = function(f) {   
      for(var i=0;i<this.length;i++)  if (f(this[i])) return [this.slice(0,i+1),this.slice(i+1)]
    }Array.prototype.map = function(f) { 
      var arr=[]
      for(var i=0;i<this.length;i++) arr.push(f(this[i]))
      return arr  
    }var f=function(o){
    o.onclick=o.onmouseover=function(){
    event.returnValue=false;
    var arr=imgs.getPart(function(x){return eval(x)==event.srcElement})
    arr[0].map(function(x){x.src="gold.gif"})
    arr[1].map(function(x){x.src="gray.gif"})
    }
    }var imgs=$A(document.getElementById("o").getElementsByTagName("IMG"))
    imgs.map(f) 
    </script>
      

  9.   

    十分感谢Go_Rush(阿舜):
    还有2个问题:
    1。鼠标移动变成金色五星后,再往左移动,不显示灰色五星了?
    2。我想最终点五星确定打分的同时执行一个动作类,
    <img src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()">
    这应该怎么添加动作的链接?
      

  10.   

    哦,错了,href="javascript:void()"这个就可以执行动作吧?
      

  11.   

    对不起,是我的错!我现在的问题是:
    对于单组的5个五角星打分没问题了,但页面上有多组不固定数量的5个五角星组,鼠标在第一组上没问题,到其它组就不行了,应该是把<span id=o>这个id换成动态的吧?我用一个STRUTS标签换成如下:
    <span id=<bean:write name="myresource" property="id"/>>
    但怎么带到下面的JS里呢?
      

  12.   

    楼主,干脆这样吧,你把你的工资给我,我替你写程序。你最基本最基本的东西都不懂,怎么写程序的啊。
    CSDN是欢迎程序员来交流,但是前提你必须要至少懂一点点啊,哪怕最基本的,这样你把大家都当你保姆啊,那软件公司都不要聘请程序员了,专门招几个人天天在CSDN问好了最后一次帮你改了啊,以后再要什么搞不定不要再给我发短消息了,自己google
    <span>
    <a href="javascript:alert(1)"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a>
    </span><br><br><br>
    <span>
    <a href="javascript:alert(1)"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a>
    </span><br><br><br><br><br>
    <span>
    <a href="javascript:alert(1)"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a>
    </span><br><br><br><br><br>
    <span>
    <a href="javascript:alert(1)"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a><a href="javascript:void()"><img 
    src="gray.gif" border=0 width=22 height=20></a>
    </span>
    <script>
    var $A = function(v) {
      if (!v) return [];
      if (v.toArray)  return v.toArray();
      var arr = [];
      for (var i = 0;i<v.length;i++) arr.push(v[i]);
      return arr;
    }Array.prototype.getPart = function(f){   
    for(var i=0;i<this.length;i++)  if (f(this[i])) return [this.slice(0,i+1),this.slice(i+1)]
    }Array.prototype.map=function(f){for(var i=0;i<this.length;i++) f(this[i])}$A(document.getElementsByTagName("SPAN")).map(function(x){
    var imgs=$A(eval(x).getElementsByTagName("IMG"))
    var f=function(o){
    o.onclick=o.onmouseover=function(){
    event.returnValue=false;
    var arr=imgs.getPart(function(x){return eval(x)==event.srcElement})
    arr[0].map(function(x){x.src="gold.gif"})
    arr[1].map(function(x){x.src="gray.gif"})
    }
    }
    imgs.map(f) 
    })
    </script>
      

  13.   

    Go_Rush(阿舜):
    实在不好意思,我以前是做CS程序的,最近刚转到JSP,JS更是刚刚接触,由于要求的紧,只好来这里请求帮忙,再次感谢!