查找兄弟元素

向下查找兄弟元素

  • next()
  • nextAll()
  • nextUntil()

向上查找兄弟元素

  • prev()
  • prevAll()
  • prevUntil()

查找所有兄弟元素

  • siblings()

 1.1.1.next()方法用来查找下一个兄弟元素,可以传参也可以不传参。参数可以是任意jQuery选择器,表示如果下一个元素如果是指定的元素就选定。当没有选中指定的元素时,jQuery链式调用还是保持原来的jQuery对象。

<!-- next -->
<button>点我</button>
<span class="demo">duyi-cst</span>
<p class="demo">duyi-cst</p>

html代码

  示例:

$('button').click(function(){
$(this).next().css({fontSize:'20px',color:'orange'});
console.log( $(this).next('span') );//可以选中元素span
console.log( $(this).next('p') );//不能选中元素p,jQuery链式调用还是保持button的jQuery对象
});

1.1.2nextAll()方法用来查找下面所有兄弟元素,可以传参也可以不传参。参数可以是任意jQuery选择器,表示如果同级后面的元素如果是指定的元素就选定。当没有选中指定元素时,jQuery链式调用还是保持原来的jQuery对象。

<div class="wrapper">
全选:<input type="checkbox"></input>
banana:<input type="checkbox" name="">
apple:<input type="checkbox" name="">
orange:<input type="checkbox" name="">
<input type="submit" value="login" name=""></input>
</div>

  示例:使用nextAll()通过全选按钮获取后面的所有复选框,并实现全选和全部撤销功能

$('input[type="checkbox"]').eq(0).click(function(){
if( $(this).prop('checked') ){
$(this).nextAll('input[type="checkbox"]').prop('checked',true);
}else{
$(this).nextAll('input[type="checkbox"]').prop('checked',false);
}
});

 1.1.3.nextUntil()方法用来查找下面所有兄弟元素,可以传入两个参数,第一个参数指定结束位置,第二个参数指定选择的元素;参数可以是任意jQuery选择器。

//html代码
<div class="wrapper1">
<h1>水果</h1>
全选:<input type="checkbox"></input>
banana:<input type="checkbox">
apple:<input type="checkbox">
orange:<input type="checkbox">
<h1>nba</h1>
全选:<input type="checkbox"></input>
Rose:<input type="checkbox">
Curry:<input type="checkbox">
James:<input type="checkbox">
<input type="button" value="submit">
</div> //js代码
$('.wrapper1 h1').next().click(function(){
if( $(this).prop('checked') ){
$(this).nextUntil('h1','input[type="checkbox"]').prop('checked',true);
}else{
$(this).nextUntil('h1','input[type="checkbox"]').prop('checked',false);
}
});

1.2.1.prev()方法用来查找上一个兄弟元素,可以传参也可以不传参。参数可以是任意jQuery选择器,表示如果上一个元素如果是指定的元素就选定。当没有选中指定的元素时,jQuery链式调用还是保持原来的jQuery对象。

<span class="demo">duyi-cst</span>
<p class="demo">duyi-cst</p>
<button>点我</button>

html代码

  示例:

$(this).prev().css({fontSize:'20px',color:'blu'});
console.log( $(this).prev('p') );//可以选中元素p
console.log( $(this).prev('span') );//不能选中元素p,jQuery链式调用还是保持button的jQuery对象

1.2.2.prevAll()方法用来查找上面的所有兄弟元素,可以传参也可以不传参。参数可以是任意的jQuery选择器,表示如果同级前面的兄弟元素如果是被指定的元素就选定。当没有选定指定元素时,jQuery链式调用还是保持原来的jQuery对象。

//html
banana:<input type="checkbox" name="">
apple:<input type="checkbox" name="">
orange:<input type="checkbox" name="">
全选:<input type="checkbox"></input> //js
$('input[type="checkbox"]').eq(3).click(function(){
if( $(this).prop('checked') ){
alert();
$(this).prevAll('input[type="checkbox"]').prop('checked',true);
}else{
$(this).prevAll('input[type="checkbox"]').prop('checked',false);
}
});

prevAll与nextAll异曲同工

1.2.3.prevUntil()方法与nextUntil()方法的机制是一样的,nextUntil向下指定结束查找位置和查找元素,prevUntil向上指定结束查找位置和查找元素。

1.3.1.siblings()方法用来获取所有兄弟元素,也可以传入一个参数(jQuery选择器)作为筛选条件。

//html
<ul>
<li>1</li>
<li class="a">2</li>
<li>3</li>
<li>4</li>
<li class="a">5</li>
</ul> //js
$('ul li').eq(2)
.css('backgroundColor','red')
.siblings()
.css('backgroundColor','orange')
.end()
.siblings('.a')
.css('backgroundColor','yellow');

注:一个关于兄弟元素查找的小demo

//html代码
<div class="wrapper2">
all:<input type="checkbox"></input> <h1>吃货清单</h1>
all:<input type="checkbox"></input> <h2>水果</h2>
全选:<input type="checkbox">
banana:<input type="checkbox">
apple:<input type="checkbox">
orange:<input type="checkbox">
<h2>蔬菜</h2>
全选:<input type="checkbox">
tomato:<input type="checkbox">
egg:<input type="checkbox">
potao:<input type="checkbox"> <h1>明星清单</h1>
all:<input type="checkbox" name=""> <h2>NBA</h2>
全选:<input type="checkbox">
Rose:<input type="checkbox">
Curry:<input type="checkbox">
James:<input type="checkbox">
</div> //js代码
//案例实现
$('.wrapper2 input[type="checkbox"]').eq(0).click(function(){
if( $(this).prop('checked') ){
$(this).nextAll().prop('checked',true);
}else{
$(this).nextAll().prop('checked',false);
}
});
$('.wrapper2 h1').next().click(function(){
if($(this).prop('checked')){
$(this).nextUntil('h1','input[type="checkbox"]').prop('checked',true);
}else{
$(this).nextUntil('h1','input[type="checkbox"]').prop('checked',false);
}
});
$('.wrapper2 h2').next().click(function(){
if($(this).prop('checked')){
$(this).nextUntil('h2','input[type="checkbox"]').prop('checked',true);
}else{
$(this).nextUntil('h2','input[type="checkbox"]').prop('checked',false);
} });

demo

查找父级元素

  • parent()
  • parents()
  • closest()
  • offsetParent()
  • slice()

 2.1.1.parent()--方法用来获取直接父级元素,可以传入参数(jQuery选择器)匹配指定父元素,如果不是指定的则不匹配,返回一个空的jQuery对象。

//div
<div class="shop" data-id='101'>
<p>basketball-nike</p>
<button>add</button>
</div> //js
console.log( $('button').parent() );//获取到div
console.log( $('button').parent('.aaa') );//没有获取到,返回空的jQuery对象

2.1.2.parents()--方法用来获取所有祖先元素,也可以传入参数(jQuery选择器)筛选,多个符合筛选条件的都会被匹配到。没有符合条件的,返回空的jQuery对象。

//html同上

//js
console.log( $('button').parents() );//div-body-html
console.log( $('button').parents('body') );//body
console.log( $('button').parents('.aaa') );//没有获取到,返回空的jQuery对象

2.2.1.closest()--方法用来获取符合条件的最近的一个父级元素,并且可以获取本身;不传入参数或参数没有匹配的祖先元素就返回一个空的jQuery对象;

console.log( $('.shop button').closest() );//空对象
console.log( $('.shop button').closest('.shop') );//div
console.log( $('.shop button').closest('button') );//自己本省
console.log( $('.shop button').closest('.aaa') );//空对象

2.2.2.offsetParent()--方法用来获取最近的有设定定位的父级元素。

//html
<div class="wrapper" style="position: relative">
<div class="box">
<span>123</span>
</div>
</div> //js
console.log( $('.wrapper span').offsetParent() );//选取到了<div class="wrapper" style="position: relative">

2.2.3slice()--通过指定索引范围来截取jQuery对象中DOM的部分,索引范围采用左闭右开,第一个索引的元素可以获取,第二个索引的元素不能获取。

//html
<ul>
<li>1</li>
<li class="a">2</li>
<li>3</li>
<li class="a">4</li>
<li class="a">5</li>
</ul> //js
console.log( $('ul li').slice(1,4) );//获取到索引为1,2,3的li元素

jQuery使用(四):DOM操作之查找兄弟元素和父级元素的更多相关文章

  1. Jquery遍历之获取子级元素、同级元素和父级元素

    Jquery遍历之获取子级元素.同级元素和父级元素 Jquery的遍历,其实就当前位置的元素相对于其他元素的位置的关系进行查找或选取HTML元素.以某项选择开始,并沿着这条线进行移动,或向上(父级). ...

  2. jQuery里面的DOM操作(查找,创建,添加,删除节点)

    一:创建元素节点(添加) 创建元素节点并且把节点作为元素的子节点添加到DOM树上 append(): 在元素下添加元素 用法:$("id").append("定义的节点& ...

  3. jquery学习笔记---Dom操作

    一.DOM操作的分类 DOM(document object model)是一种与浏览器.平台.语言无关的接口,使用该接口可以访问页面中的·所有组件.DOM的操作可以分为DOM Core.HTML-D ...

  4. 锋利的jQuery ——jQuery中的DOM操作(三)

    一.DOM的操作分类 1>DOM Core   2>HTML-DOM   3>CSS-DOM 二.jQuery中的DOM操作 DOM树 ①查找节点 1)查找元素节点 利用jQuery ...

  5. jQuery中的DOM操作------复制及包裹节点

    1.复制节点: 如果单击<li>元素后需要再复制一个<li>元素,可以用clone()方法来完成: $(this).clone().appendTo("ul" ...

  6. [jQuery]相对父级元素的fixed定位

    (function($) {     var DNG = {};     //----------------------------------------------------/     // ...

  7. jquery选择器:获取父级元素、同级元素、子元素

    jQuery的出现给广大开发者提供了不少的方便.从要自己一个一个敲代码,到直接调用方法,无疑大大地提高了网站开发的效率.而在jQuery中有一些方法非常的实用.下面就给大家介绍下jquery选择器:获 ...

  8. Jquery基础之DOM操作

    转自:http://www.cnblogs.com/bro-ma/p/3063942.html JQuery中的DOM操作主要对包括:建[新建].增[添加].删[删除].改[修改].查[查找][像数据 ...

  9. [转]jQuery 选择器和dom操作

    居然是12年的总结.... 文章地址: http://www.cnblogs.com/happyPawpaw/articles/2595092.html JQuery选择器 1.基本选择器 基本选择器 ...

随机推荐

  1. 全局最小割Stoer-Wagner算法

    借鉴:http://blog.kongfy.com/2015/02/kargermincut/ 提到无向图的最小割问题,首先想到的就是Ford-Fulkerson算法解s-t最小割,通过Edmonds ...

  2. Django 静态文件相关设置

    项目根目录创建  static 文件夹 settings.py 中加入 STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static") ...

  3. java session创建与获取

    一.流程 登录接口-->验证用户名密码-->获取用户实体对象-->创建session (key,value) 其他接口调用-->获取session(key) 二.代码 //登录 ...

  4. 登录Linux服务器显示IP和自定义备注

    默认搭建好的Linux服务器,使用Xshell登录的窗口如下所示: 可根据需要执行如上代码,再重新登录服务器,效果如下图所示: 代码片段:echo "export PS1='\u@\[\e[ ...

  5. virtio,macvtap,sriov

    本文转自http://xiaoli110.blog.51cto.com/1724/1558984 一个完整的数据包从虚拟机到物理机的路径是: 虚拟机--QEMU虚拟网卡--虚拟化层--内核网桥--物理 ...

  6. 转----------数据库常见笔试面试题 - Hectorhua的专栏 - CSDN博客

    数据库基础(面试常见题) 一.数据库基础 1. 数据抽象:物理抽象.概念抽象.视图级抽象,内模式.模式.外模式 2. SQL语言包括数据定义.数据操纵(Data Manipulation),数据控制( ...

  7. 【原创】hdu1698 Just a Hook(线段树→区间更新,区间查询)

    学习线段树第二天,这道题属于第二简单的线段树,第一简单是单点更新,这个属于区间更新. 区间更新就是lazy思想,我来按照自己浅薄的理解谈谈lazy思想: 就是在数据结构中,树形结构可以线性存储(线性表 ...

  8. 2018-2019 ACM-ICPC Pacific Northwest Regional Contest C Contest Setting(DP)

    比赛链接:Contest Setting C题 题意:$n$道题目,每道题目难度为$ai$,选择$k$道难度不同的题目,有多少种选择方案.$1<=k<=n<=1000,1<=a ...

  9. bzoj2555(后缀自动机+LCT)

    题目描述 (1):在当前字符串的后面插入一个字符串 (2):询问字符串s在当前字符串中出现了几次?(作为连续子串) 你必须在线支持这些操作. 题解 做法很自然,建出后缀自动机,维护每个节点的right ...

  10. P1637 三元上升子序列

    thair 好,这个naive的东西因为只有三元,很好求解.只要把每个数之前小的L[i]与之后大的R[i]求一下即可. 求两次逆序对即可.那么答案便是∑(L[i]*R[i]); 对于更高元的,胡雨菲写 ...