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---

时间: 2024-10-20 16:57:54

jQuery改变兄弟元素样式,及:not([class="allclassname"])筛选小结的相关文章

jQuery 获取兄弟元素的几种方法

jQuery 获取兄弟元素的几种方法. 获取指定元素的兄弟元素时,可以使用adjacent sibling combinator (+),其中+的两侧内容都是selector expression. 如果要获取下例中所有的 h1的直接兄弟元素h2 <div> <h1>Main title</h1> <h2>Section title</h2> <p>Some content...</p> <h2>Section

jQuery -&gt; 获取兄弟元素

获取指定元素的兄弟元素时,可以使用adjacent sibling combinator (+),其中+的两侧内容都是selector expression. 如果要获取下例中所有的 h1的直接兄弟元素h2 <div> <h1>Main title</h1> <h2>Section title</h2> <p>Some content...</p> <h2>Section title</h2> &l

jQuery学习之------元素样式的操作

jQuery学习之------元素样式的操作 一..addClass( className )方法----增加样式 1.addClass( className ) : 为每个匹配元素所要增加的一个或多个样式名 <head> <style> /*css样式代码*/ .soulsjie{ background:red; } .newstyle{ height:100px; width:100px; } .newsty2{ font-size:16px; } </style>

jquery 添加点击添加class样式 移除兄弟元素样式

<ul class="nav nav-tabs margin-top" id="before_click"> <li ><a href="{:U('Home/Qrcode/add')}">创建二维码数据</a></li> <li ><a href="{:U('Home/Reply/index')}">回复语模板</a></li

jQuery中兄弟元素、子元素和父元素的获取

我们这里主要总结jQuery中对某元素的兄弟元素.子元素和父元素的获取,原声的Javascript代码对这些元素的获取比较麻烦一些,而jQuery正好对这些方法进行封装,让我们更加方便的对这些元素进行获取和操作. jQuery提供的方法 上来就把jQuery提供的方法摆在这里是不是有点不好呀,不过,我们从jQuery的方法名称上就能知道这些方法是干嘛的了. parent(selector) 查找父元素,可传入selector进行过滤(下同) parents(selector) 查找所有的祖先节点

使用jQuery改变HTML元素的CSS样式

<script>$(document).ready(function() {$("#target1").css("color","red");});</script> <!-- Only change code above this line. --> <div class="container-fluid"><h3 class="text-primary tex

jquery获取兄弟元素

按照w3c school的指引,jquery中,要获得一个元素的兄弟,可以用 prev().next()两种方法.顾名思义,prev()获得前一个,next()获得后面一个. 问题是,如果存在前后兄弟,这俩方法可能会返回实打实的对象:如果是没有呢?返回啥?是null吗? 答案不是.你如果想用 if( $("#div1").prev() == null ) { alert("没啦");} ,注定会撞板.因为永远不会为null. 我试来又试去,最后是这样搞的: if (

动态改变伪元素样式的方(用:after和:before生成的元素)

自己查资料总结的两种方法 一.纯css改变 a:hover:before{left:-20%;} a:hover:after{right:-20%;} a:before{ left:-100%; } a:after{ right:-100%; }利用元素名:hover:before{改变的样式内容},当鼠标移到该元素上时,伪元素的样式进行改变,hover和before之间一定不能有空格,这里连写在一起是代表并,and的意思,在css中没有and关键词,用连写方式代替,例如:not(:first-

jQuery改变html页面样式

  1.用css()方法返回元素的样式属性 $("div").css("padding-left")); 2.用css()设置样式 $("div").css("color","yellow"); 3.设置多个样式 $("div").css({"background-color":"yellow","font-size":&quo