Jquery层级选择器

层次选择器:
层次选择器是通过元素之间的层次关系来获取特定的元素,如后代元素、子元素、相邻元素、和兄弟元素等
后代元素
ancestor descendant
获取ancestor<祖先>下的descendant<后代>元素<不分级,只要在ancestor里面就行>
集合元素
$("div span")选取div里面的所有span元素
子元素
parent > child
获取parent<父>下的child<子>子代元素<分级,只能在parent的下面是他的子元素>
集合元素
  $("div > span")选取div下元素名称为span的子元素
相邻元素
prev + next
选取紧接在prev元素后的next元素
集合元素
$(.one + div)选取class为one的下一个div元素
兄弟元素
prev~siblings
选取prev元素后面的所有siblings元素
集合元素
  $("#two~div")选取id为two的元素后面的所有div兄弟元素
$("prev + next")可以用next()代替
$("prev ~ siblings")可以用nextAll()代替
$("prev ~ siblings")和siblings()的区别是siblings()获取所有的兄弟元素,不分先后;
$("prev ~siblings")要求是指定元素“prev”后面的兄弟元素



1.$(“ancestor descendant”):选取parent元素后所有的child元素
ancestor的中文意思是“祖先”,descendant的中文意思是“后代”

$(“body div”) 选取body元素下所有的div元素。
$(“ul li”) 选取ul元素下所有的li元素。
$(“#test div”) 选取id为“test”的元素所包含的所有的div子元素
$(“div#test div”) 选取id为“test”的div所包含的所有的div子元素
$(“.test div”) 选取class为“test”的元素所包含的所有的div子元素
$(“div.test span”) 选取class为“test”的div所包含的所有的span子元素
$(“span.test .demo”) 选取class为“test”的span所包含的所有的class为demo的元素
$(“.test .demo”) 选取class为“test”的元素所包含的所有的class为demo的元素

2.$(“parent > child”):选取parent元素后所有的直属child元素,何谓“直属”,也就是第一级的意思了
$(“body > div”) 选取body元素下所有的第一级div元素。
$(“ul > li”) 选取ul元素下所有的第一级li元素。
$(“#test > div”) 选取id为“test”的元素所包含的所有的第一级div子元素
$(“div#test > div”) 选取id为“test”的div所包含的所有的第一级div子元素
$(“.test > div”) 选取class为“test”的元素所包含的所有的第一级div子元素
$(“div.test > span”) 选取class为“test”的div所包含的所有的第一级span子元素
$(“span.test > .demo”) 选取class为“test”的span所包含的所有的第一级class为demo的元素
$(“.test > .demo”) 选取class为“test”的元素所包含的所有的第一级class为demo的元素

3.$(“prev + next”):prev和next是两个同级别的元素. 选中在prev元素后面的next元素.
$(“#demo+img”)选在id为demo元素后面的img对象.如果id为demo元素后面没有同级的img对象,那么这个$(“#demo+img”).length=0
4.$(“prev ~ siblings”):选择prev后面的根据siblings过滤的元素。注:siblings是过滤器
$(“#demo~[title]“)选择id为demo的元素后面所有带有title属性的元素,同样如果id为demo的元素后面没有一个带有title属性的元素,那么$(“#demo~[title]“).length = 0


$('th').parent()			     —— 获取父级节点           
$('td:contains("Henry")').prev()——内容包含有"Henry"的<td>的上一个节点
$('td:contains("Henry")').next()——内容包含有"Henry"的<td>的下一个节点
$('td:contains("Henry")').siblings()——内容包含有"Henry"的<td>的所有兄弟节点
还有一个,就是end(),这个方法肯定是用在某个DOM节点执行了某一动作之后,还想在与其相关的节点上执行类似动作,这里就要用到end()。用过end()方法之后,所返回的是执行动作的那个节点的父节点上。举个例子
$(...).parent().find(...).addClass().end()
这里执行动作的节点是find(...),是一个数组对象,它所做的动作是“addClass()”,之后,用了个end(),这时所返回的东东就是指向了parent()所指向的节点,也就是执行“addClass()”动作的那个数组对象的父节点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值