jQuery改变兄弟元素样式,及:not([class="allclassname"])筛选小结
以前一直对于jquery感到很畏惧,最近做点击图表变色,将其他元素图片复位的小需求,总结了一下一点小心得。
主要两点是:1、将所有兄弟元素的样式设置为一样,对于子元素的遍历;
2、对于特殊不需要变化的兄弟元素的排除;
如下,对所有兄弟元素的样式设置为一样用过有两种方法:
<div class="paneltime">
<ul >
<li><a>今天</a></li>
<li><a>3天</a></li>
<li class="active"><a>7天</a></li>
<li><a>15天</a></li>
<li><a>30天</a></li>
<li>时间段:</li>
<li style="margin-left:200px;" ordertype="desc"><a>声量 <i class="icon-chevron-down"></i></a></li>
<li ordertype="desc"><a>时间 <i class="icon-chevron-down"></i></a></li>
<li ordertype="desc"><a>相关度 <i class="icon-chevron-down"></i></a></li>
<li class="pull-right">
<div class="panel-search bgwhite" id="panel-search">
<form class="form-search">
<span class="input-icon">
<input type="text" placeholder="搜索 ..." class="panel-search-input" id="panel-search-input" autocomplete="off" />
<i class="icon-search nav-search-icon"></i>
</span>
</form>
</div>
</li>
</ul> </div>
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');
<script type="text/javascript">
//更改当前标签的背景色 $(".paneltime li").click(function(){ var liParent = $(this).parent();
var brother = liParent.children(); var orderType = $(this).attr('orderType');
if(orderType=="desc")
{
brother.each(function(index){
$(this).removeClass('active');
})
$(this).addClass('active');
$(this).attr('orderType','asc');
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');
}
else if(orderType=="asc")
{
brother.each(function(index){
$(this).removeClass('active');
})
$(this).addClass('active');
$(this).attr('orderType','desc');
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-down red');
}
else
{
brother.removeClass('active');
$(this).addClass('active');
}
});
</script>
js部分代码
不排除导致的错误:

排除后搜索按钮不会变化:

-----------------------------------------------------------------------------------------------------------------------------------151102---
jQuery改变兄弟元素样式,及:not([class="allclassname"])筛选小结的更多相关文章
- jQuery学习之------元素样式的操作
jQuery学习之------元素样式的操作 一..addClass( className )方法----增加样式 1.addClass( className ) : 为每个匹配元素所要增加的一个或多 ...
- jQuery中兄弟元素、子元素和父元素的获取
我们这里主要总结jQuery中对某元素的兄弟元素.子元素和父元素的获取,原声的Javascript代码对这些元素的获取比较麻烦一些,而jQuery正好对这些方法进行封装,让我们更加方便的对这些元素进行 ...
- jquery获取兄弟元素
按照w3c school的指引,jquery中,要获得一个元素的兄弟,可以用 prev().next()两种方法.顾名思义,prev()获得前一个,next()获得后面一个. 问题是,如果存在前后兄弟 ...
- 动态改变伪元素样式的方(用:after和:before生成的元素)
自己查资料总结的两种方法 一.纯css改变 a:hover:before{left:-20%;} a:hover:after{right:-20%;} a:before{ left:-100%; } ...
- jQuery如何改变css伪元素样式
首先我们看一下css伪元素是什么: CSS 伪元素用于向某些选择器设置特殊效果. 伪元素有哪些: :first-line 伪元素:"first-line" 伪元素用于向文本的首行设 ...
- selenium用jquery改变元素属性
一.jQuery 语法 jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作. 1.基础语法: $(selector).action() 选择符(selector)即," ...
- 利用CSS hover伪类改变其他元素的总结
:hover 伪类经常用于页面的一些鼠标交互.链接点击变化,增强页面的用户体验,但是可以用来改变其他元素样式,可以在不使用JS 的情况下,达到想要的页面效果. 1.hover改变自身的效果: 鼠标悬浮 ...
- jquery 改变标签样式
jQuery改变标签的样式一般有3种 预置好class,然后通过jQuery改变元素的class名,使用的是addClass.removeClass 直接改变元素的css属性值,这种是通过添加styl ...
- stylus选中hover元素的兄弟元素下的子元素
stylus设置兄弟元素样式:鼠标浮动在 .video-li 元素上时,.video-li 兄弟中 .video-info 下的 .word 显示. .video-li &:hover ~ . ...
随机推荐
- 3D touch的 使用心得
一.设置图标touch 快捷进入 1.静态标签 静态标签是我们在项目的配置plist文件中配置的标签,在用户安装程序后就可以使用,并且排序会在动态标签的前面. 我们先来看静态标签的配置: 首先,在in ...
- sql cross join table
A 表数据如下图所示 B表数据如下图所示
- wpa supplicant 保存 wifi 设置
wpa suppliclant使用wpa gui连接wifi后,下次开机的时,不能保存,需要从新手动进行连接. 自动保存方法: 配置文件/etc/wpa_supplicant.conf 添加 upda ...
- Python开发【第二章】:Python深浅拷贝剖析
Python深浅拷贝剖析 Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果. 下面本文就通过简单的例子介绍一下这些概念之间的差别. 一.对象赋值 ...
- Nginx基础整理
目录结构如下: Nginx基础知识 Nginx HTTP服务器的特色及优点 Nginx的主要企业功能 Nginx作为web服务器的主要应用场景包括: Nginx的安装 安装环境 快速安装命令集合 各个 ...
- Wex5页面事件执行顺序
wex5 事件执行顺序data组件的onCustomRefresh→ model组件的onLoad→ windowReceiver组件的onReceive
- JS的URL编码
背景 URL只能使用英文字母.阿拉伯数字和某些标点符号,不能使用其他文字和符号,这是网络标准: 只有字母和数字[-9a-zA-Z].一些特殊符号"$-_.+!*'(),"[不包括双 ...
- ASP.NET MVC中,怎么使用jquery/ajaxForm上传文件
ajaxForm插件最好选择:jquery forms plugin. 以下为示例: Ajax.BeginForm @using (Ajax.BeginForm("YourAction&qu ...
- spring1冲刺感想与总结
感想与体会: 通过团队合作的第一个sprint,我们知道如何在团队合作中做好自己,还有与队友不合时,如何和平处理问题.产品负责人是一个重要的的角色,他负责任务的安排,处理合作中意见不统一的问题.通过这 ...
- Python快速建站系列-Part.Three-注册和登录
|版权声明:本文为博主原创文章,未经博主允许不得转载. 上一个Part已经给TSSS编好了一个简单的Web服务,网页的基础模版也写好了,那从这个Part开始就慢慢增加编写功能. 先写基础功能:注册和登 ...