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 ~ . ...
随机推荐
- Thinking in Java——笔记(7)
Reusing Classes The first is composition,You're simply reusing the functionality of the code, not it ...
- css页面布局基础
1.盒模型属性包括boder.margin.padding.width.height,这些属性可以使用快捷方式表示,顺序为上右下左,值之间用空格隔开. 2.使用clip和overflow属性时,pos ...
- jQuery/Javascript 事件停止冒泡
Demo: <div id='wrap'> <button id='btn'>btn</button> </div> 一般情况下,两个元素分别添加点击事 ...
- Spark on YARN两种运行模式介绍
本文出自:Spark on YARN两种运行模式介绍http://www.aboutyun.com/thread-12294-1-1.html(出处: about云开发) 问题导读 1.Spark ...
- 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
package com.lw.HomeWork1;//包名 2 import java.util.Scanner; public class Demo18 { /** * @param args */ ...
- java线程生命周期及其对应方法
http://blog.sina.com.cn/s/blog_a8aa82cc0101ktrm.html http://wenku.baidu.com/view/c242df69011ca300a6c ...
- MongoDB安装并设置为windows服务以使其开机自启
在MongoDB的官方下载windows平台的压缩zip文件,地址:https://www.mongodb.org/dr/fastdl.mongodb.org/win32/mongodb-win32- ...
- Android-Activity使用(2) -传值
一.简单传值 1.修改MainActivity protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedIns ...
- c#.net常用字符串函数 字符串常用方法
RegionsStr = RegionsStr.Remove(RegionsStr.LastIndexOf(","), 1); //去掉最后一个逗号 Compare 比较字符串 ...
- mysql的一些基本操作语句
-- 创建一个php2016的数据库create database php2016;-- 查看数据库的创建创建语句show create database php2016;-- 指定默认的操作数据库u ...