jQuery 选择器

本文最后更新于:2024年3月18日 凌晨

jQuery 选择器

基本元素

基础选择器

  • 与css选择器基本相同,可简化原生js繁琐的dom操作。
1
$("#id") = document.getElementById("id")

筛选

siblings([expr])

  • 取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合,可以用可选的表达式进行筛选。
  • [expr]用于筛选同辈元素的表达式。

示例

  • 找到每个div的所有同辈元素。
1
2
3
4
5
6
7
8
<p>Hello</p>
<div>
<span>Hello Again</span>
</div>
<p>And Again</p>
<script>
$("div").siblings()
</script>
1
[ <p>Hello</p>, <p>And Again</p> ]
  • 找到每个div的所有同辈元素中带有类名为selected的元素。
1
2
3
4
5
6
7
8
<div>
<span>Hello</span>
</div>
<p class="selected">Hello Again</p>
<p>And Again</p>
<script>
$("div").siblings(".selected")
</script>
1
[ <p class="selected">Hello Again</p> ]

parent([expr])

  • 取得一个包含着所有匹配元素的唯一父元素的元素集合。
  • 你可以使用可选的表达式来筛选。
  • [expr]用来筛选的表达式。

实例

  • 查找段落的父元素中每个类名为selected的父元素。
1
2
3
4
5
6
7
8
9
<div>
<p>Hello</p>
</div>
<div class="selected">
<p>Hello Again</p>
</div>
<script>
$("p").parent(".selected")
</script>
1
[ <div class="selected"><p>Hello Again</p></div> ]

children([expr])

  • 取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合。
  • 可以通过可选的表达式来过滤所匹配的子元素,注意:parents()将查找所有祖辈元素,而children()只考虑子元素而不考虑所有后代元素。
  • [expr]用以过滤子元素的表达式。

实例

  • 在每个div中查找 .selected 的类。
1
2
3
4
5
6
7
8
<div>
<span>Hello</span>
<p class="selected">Hello Again</p>
<p>And Again</p>
</div>
<script>
$("div").children(".selected")
</script>
1
[ <p class="selected">Hello Again</p> ]

表单

表单选择器

  • 虽然可以使用常规选择器来对表单的元素进行定位,但有时还是不能满足开发者灵活多变的需求,所以jQuery为表单提供了专用的选择器。
方法名 描述 返回
:input 选取所有input,textarea,select和button元素 集合元素
:text 选择所有单行文本框,即type=text 集合元素
:password 选择所有密码框,即type=password 集合元素
:radio 选择所有单选框,即type=radio 集合元素
:checkbox 选择所有复选框,即type=checkbox 集合元素
:submit 选取所有提交按钮,即type=submit 集合元素
:reset 选取所有重置按钮,即type=reset 集合元素
:image 选取所有图像按钮,即type=image 集合元素
:button 选择所有普通按钮,即button元素 集合元素
:file 选择所有文件按钮,即type=file 集合元素
:hidden 选择所有不可见字段,即type=hidden 集合元素

实例

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
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>表单选择器</title>
<script type="text/javascript" src="jquery-1.12.3.js"></script>
<script type="text/javascript" src="demo.js"></script>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<form>
<input type="text" name="user" value="123" />
<input type="password" name="pass" value="456" />
<input type="radio" name="sex" value="男" checked="checked" />男。
<input type="radio" name="sex" value="女" />女。
<textarea></textarea>
<select name="city" multiple>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<button></button>
</form>
<script>
alert($(":input").size()); //4
alert($(":text").size()); //1
</script>
</body>
</html>

注意:这些选择器都是返回元素集合,如果想获取某一个指定的元素,最好结合一下属性选择器,比如:

1
2
3
4
alert($(":input[name=city]").size()); //1
alert($(":password[name=pass]").size()); //1
alert($(":radio[name=sex]").last().val()); // 女等价于alert($(":radio[name=sex]").eq(1).val());
alert($("form :hidden").size()); // 返回0,因为文档没有隐藏元素,注意要加空格。

表单过滤器

  • jQuery提供了四种表单过滤器,分别在是否可以用,是否选定来进行表单字段的筛选过滤。
方法名 描述 返回
:enabled 选取所有可用元素 集合元素
:disabled 选取所有不可用元素 集合元素
:checked 选取所有被选中的元素,单选和复选字段 集合元素
:selected 选取所有被选中的元素,下拉列表 集合元素

实例

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
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>表单选择器</title>
<script type="text/javascript" src="jquery-1.12.3.js"></script>
<script type="text/javascript" src="demo.js"></script>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<form>
<input type="text" name="user" value="123" />
<input type="password" name="pass" value="456" />
<input type="radio" name="sex" value="男" checked="checked" />男。
<input type="radio" name="sex" value="女" />女。
<textarea></textarea>
<select name="city" multiple>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<button></button>
</form>
<script>
alert($("form :enabled").size()); // 获取可用元素的数量。
alert($("form :disabled").size()); // 获取不可用元素的数量。
alert($("form :checked").size()); // 获取单选,复选框中被选中的元素数量。
alert($("form :selected").size()); // 获取下拉列表中被选中的元素数量。
alert($("form :selected").get(0)); //undefined/[object HTMLOptionElement]
</script>
</body>
</html>

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!