jQuery改變兄弟元素樣式,及:not([class="allclassname"])篩選小結


以前一直對於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     
html部分代碼

 

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>
js部分代碼

不排除導致的錯誤:

排除后搜索按鈕不會變化:

 

-----------------------------------------------------------------------------------------------------------------------------------151102---


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM