jQuery零基础入门——(三)层级选择器

《jQuery零基础入门》系列博文是在廖雪峰老师的博文基础上,补充了我的的理解和平常遇到的点,用个人理解表述出来,主干出处来自廖雪峰老师的技术分享。javascript

除了基本的选择器外,jQuery的层级选择器更加灵活,也更强大。css

由于DOM的结构就是树形结构,因此咱们常常要根据层级关系进行选择。html

层级选择器(Descendant Selector)

若是两个DOM元素具备层级关系,就能够用$('上级 下级')来选择,层级之间用空格隔开。例如:java

<div class="d1">
	<ul class="lang">
		<li class="lang-js">JavaScript</li>
		<li class="lang-jq">jQuery</li>
		<li class="lang-css">CSS</li>
	</ul>
</div>

要选出jQuery,能够用层级选择器:spa

$("ul.lang li.lang-jq");//能够取到
$("div.d1 li.lang-jq");//能够取到

由于<div><ul>都是<li>的祖先节点,因此上面两种方式均可以选出相应的<li>节点。code

要选择全部的<li>节点,用:htm

$('ul.lang li');

这种层级选择器相比单个的选择器好处在于,它缩小了选择范围,由于首先要定位父节点,才能选择相应的子节点,这样避免了页面其余不相关的元素。ip

子选择器(Child Selector)

子选择器$('parent>child')相似层级选择器,可是限定了层级关系必须是父子关系,就是<child>节点必须是<parent>节点的直属子节点。仍是以上面的例子:input

$("ul.lang>li.lang-jq");//能够取到
$("div.d1>li.lang-jq");//没法取到,不是父子级关系

过滤器(Filter)

过滤器通常不单独使用,它一般附加在选择器上,帮助咱们更精确地定位元素。观察过滤器的效果:io

$('ul.lang li:first-child'); // 仅选出JavaScript
$('ul.lang li:last-child'); // 仅选出css

表单相关

  • .input:能够选择<input><textarea><select><button>
  • :file:能够选择<input type="file">,和input[type=file]同样;

  • :checkbox:能够选择复选框,和input[type=checkbox]同样;

  • :focus:能够选择当前输入焦点的元素,例如把光标放到一个<input>上,用$('input:focus')就能够选出;

  • :radio:能够选择单选框,和input[type=radio]同样;

  • :checked:选择当前勾上的单选框和复选框,用这个选择器能够马上得到用户选择的项目,如$('input[type=radio]:checked')

  • :enabled:能够选择能够正常输入的<input><select> 等,也就是没有灰掉的输入;

  • :disabled:和:enabled正好相反,选择那些不能输入的。

此外,jQuery还有不少有用的选择器,例如,选出可见的或隐藏的元素:

$('div:visible'); // 全部可见的div
$('div:hidden'); // 全部隐藏的div
相关文章
相关标签/搜索