以前一直對於jquery感到很畏懼,最近做點擊圖表變色,將其他元素圖片復位的小需求,總結了一下一點小心得。
主要兩點是:1、將所有兄弟元素的樣式設置為一樣,對於子元素的遍歷;
2、對於特殊不需要變化的兄弟元素的排除;
如下,對所有兄弟元素的樣式設置為一樣用過有兩種方法:

1 <div class="paneltime"> 2 <ul > 3 <li><a>今天</a></li> 4 <li><a>3天</a></li> 5 <li class="active"><a>7天</a></li> 6 <li><a>15天</a></li> 7 <li><a>30天</a></li> 8 <li>時間段:</li> 9 <li style="margin-left:200px;" ordertype="desc"><a>聲量 <i class="icon-chevron-down"></i></a></li> 10 <li ordertype="desc"><a>時間 <i class="icon-chevron-down"></i></a></li> 11 <li ordertype="desc"><a>相關度 <i class="icon-chevron-down"></i></a></li> 12 <li class="pull-right"> 13 <div class="panel-search bgwhite" id="panel-search"> 14 <form class="form-search"> 15 <span class="input-icon"> 16 <input type="text" placeholder="搜索 ..." class="panel-search-input" id="panel-search-input" autocomplete="off" /> 17 <i class="icon-search nav-search-icon"></i> 18 </span> 19 </form> 20 </div> 21 </li> 22 </ul> 23 24 </div> 25
1.1、遍歷子元素:
$(".paneltime li").click(function(){
var liParent = $(this).parent();
var brother = liParent.children();
var orderType = $(this).attr('orderType');
brother.each(function(index){
$(this).removeClass('active');
})
$(this).addClass('active');
});
1.2、后來發現不需要遍歷的:
brother.removeClass('active');
$(this).addClass('active');
2.排除最后的那個搜索圖標<i class="icon-search nav-search-icon"></i>,不需要變化,不排除就會變為箭頭
brother.find('i:not([class="icon-search nav-search-icon"])').attr('class','icon-chevron-down')
$(this).find('i:not([class="icon-search nav-search-icon"])').attr('class','icon-chevron-up red');

1 <script type="text/javascript"> 2 //更改當前標簽的背景色 3 4 $(".paneltime li").click(function(){ 5 6 var liParent = $(this).parent(); 7 var brother = liParent.children(); 8 9 var orderType = $(this).attr('orderType'); 10 if(orderType=="desc") 11 { 12 brother.each(function(index){ 13 $(this).removeClass('active'); 14 }) 15 $(this).addClass('active'); 16 $(this).attr('orderType','asc'); 17 brother.find('i:not([class="icon-search nav-search-icon"])').attr('class','icon-chevron-down') 18 $(this).find('i:not([class="icon-search nav-search-icon"])').attr('class','icon-chevron-up red'); 19 } 20 else if(orderType=="asc") 21 { 22 brother.each(function(index){ 23 $(this).removeClass('active'); 24 }) 25 $(this).addClass('active'); 26 $(this).attr('orderType','desc'); 27 brother.find('i:not([class="icon-search nav-search-icon"])').attr('class','icon-chevron-down'); 28 $(this).find('i:not([class="icon-search nav-search-icon"])').attr('class','icon-chevron-down red'); 29 } 30 else 31 { 32 brother.removeClass('active'); 33 $(this).addClass('active'); 34 } 35 }); 36 </script>
不排除導致的錯誤:
排除后搜索按鈕不會變化:
-----------------------------------------------------------------------------------------------------------------------------------151102---