今天说的是层次选择器,那层次选择器有哪几个?
$("ancestor descendant"):选取parent元素后所有的child元素 $("parent > child"):选取parent元素后所有的直属child元素,何谓“直属”,也就是第一级的意思了 $("prev + next"):prev和next是两个同级别的元素. 选中在prev元素后面的next元素 $("prev ~ siblings"):选择prev后面的根据siblings过滤的元素。注:siblings是过滤器
这里要说下,由于最后2个用的比较少,一般会用其他选择器替代,请看下面:
?
|
具体用法会在后面说到。
===========================================================================
下面我们来仔细说说这4个层次选择器
【1】$("ancestor descendant"):选取parent元素后所有的child元素
ancestor的中文意思是“祖先”,descendant的中文意思是“后代”,就像css定义层级元素方式一样,只需要不同的元素之间有空格表示,前者父级,后者子级,以此类推,同时我们把它写成这样的形式,$("Element1 Element2 Element3 Element...")。
下面是实例:
$("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元素.
(1)$("div + p")表示选择紧跟在 div 元素后的 p 一个元素
(2)$("#demo+img")选择id为demo元素后面的img对象.如果id为demo元素后面没有同级的img对象,那么这个$("#demo+img").length=0
【4】$("prev ~ siblings"):选择prev后面的根据siblings过滤的元素。注:siblings是过滤器。
(1)$("div ~ p")表示匹配跟在 div 元素后的所有 p 元素
(2)$("#demo~[title]")选择id为demo的元素后面所有带有title属性的元素,同样如果id为demo的元素后面没有一个带有title属性的元素,那么$("#demo~[title]").length = 0
===========================================================================
这里说的是最后2个选择器的等价关系
$(".one + div")等价于$(".one").next("div")
$("#prev ~ div")等价于$(".prev").nextAll("div")
===========================================================================
这里是实例,参考w3cfuns网站的
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
========================================================================
ps.全文参考梦三秋和w3cfuns网站