主要功能是一个横向的菜单如下:
<a> <b> <c> <d> <e>
点击<a>时它和它附近的二个都打开如下:
<    a    > <    b    > <     c    > <d> <e>
点击<d>时它和它附近的二个都打开其它关闭如下:
<a> <b> <     c    > <    d    > <    e    >请大家帮忙

解决方案 »

  1.   

    大体思路  <div id="test">
           <span style="cursor:pointer;" lang="0">+a+</span>
           <span style="cursor:pointer;" lang="0">+b+</span>
           <span style="cursor:pointer;" lang="0">+c+</span>
           <span style="cursor:pointer;" lang="0">+d+</span>
           <span style="cursor:pointer;" lang="0">+e+</span>
       </div>   Node.prototype.prev = function(){
               var  pre = this.previousSibling;
               while(pre&&pre.nodeName.toLowerCase()==="#text"){
                      pre = pre.previousSibling;
               }
               return pre;
            }        Node.prototype.next = function(){
                var next = this.nextSibling;
                while(next&&next.nodeName.toLowerCase()==="#text"){
                    next = next.nextSibling;
                }
                return next;
            }        window.onload = function(){
                var _prev,_nex,current;
                var spans = document.getElementById("test").getElementsByTagName("span");
                for(var i=0; i<spans.length; i++){
                    spans[i].onclick = function(){
                       if(_prev){
                           _prev.innerHTML = _prev.innerHTML.replace(/-/g,"\+");
                           _prev.lang = "0";
                       }
                       if(_nex){
                           _nex.innerHTML = _nex.innerHTML.replace(/-/g,"\+");
                           _nex.lang = "0";
                       }
                       if(current){
                          current.innerHTML = current.innerHTML.replace(/-/g,"\+");
                           current.lang = "0";
                       }
                       var pre = this.prev();
                        var next = this.next();
                        if(pre){
                           _prev = pre;
                           if(pre.lang=="0"){
                               pre.innerHTML = pre.innerHTML.replace(/\+/g,"-");
                               pre.lang = "1";
                           }
                           else{
                                pre.innerHTML = pre.innerHTML.replace(/-/g,"\+");
                               pre.lang = "0";
                           }
                        }
                        if(next){
                            _nex = next;
                            if(next.lang=="0"){
                               next.innerHTML = next.innerHTML.replace(/\+/g,"-");
                               next.lang = "1";
                           }
                           else{
                                next.innerHTML = next.innerHTML.replace(/-/g,"\+");
                               next.lang = "0";
                           }
                        }
                         if(this.lang=="0"){
                               this.innerHTML = this.innerHTML.replace(/\+/g,"-");
                               this.lang = "1";
                           }
                           else{
                                this.innerHTML = this.innerHTML.replace(/-/g,"\+");
                               this.lang = "0";
                           }
                        current = this;
                    }
                }
            }
      

  2.   

    以上代码不适合IE6,FF下测试