事实上,一个jQuery对象是一个或多个dom对象组成的数组,jQuery 对象中存储的 DOM 对象顺序与页面标签声明位置关系,如:
1
dom12
dom23
dom3当获取到jQuery对象时,$(“div”) == [dom1,dom2,dom3],其存储顺序是对应的。
所谓过滤器就是过滤条件,对已经定位到数组中 DOM 对象进行过滤筛选而获取一个新的jQuery对象,过滤条件不能独立出现在 jquery 函数,如果使用只能出现在选择器后方。
基本过滤器
(1)选择第一个 first, 保留数组中第一个 DOM 对象
语法:$(“选择器:first”)
(2)选择最后个 last, 保留数组中最后 DOM 对象
语法:$(“选择器:last”)
(3)选择数组中指定对象
语法:$(“选择器:eq(数组索引)”)
(4)选择数组中小于指定索引的所有 DOM 对象
语法:$(“选择器:lt(数组索引)”)
(5)选择数组中大于指定索引的所有 DOM 对象
语法:$(“选择器:gt(数组索引)”)
实例如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="static/js/jquery.js"></script>
<style>
div{
background: grey;
width: 200px;
height: 50px;
margin-top: 50px;
}
</style>
<script>
$(function () {
$("#btn1").click(function () {
alert("哎呦,不错哟~");
});
$("#btn2").click(function () {
let obj=$("div:first");
obj.css("background","blue");
});
$("#btn3").click(function () {
let obj=$("div:last");
obj.css("background","red");
});
$("#btn4").click(function () {
let obj=$("div:eq(1)");
obj.css("background","green");
});
$("#btn5").click(function () {
let obj=$("div:lt(3)");
obj.css("background","yellow");
});
$("#btn6").click(function () {
let obj=$("div:gt(3)");
obj.css("background","orange");
});
});
</script>
</head>
<body>
<div id="one">我是第一个div-0</div>
<div id="two">我是第二个div-1</div>
<div id="three">我是第三个div-1</div>
<div id="four">我是第四个div-1</div>
<div id="five">我是第五个div-1</div>
<div id="six">我是第六个div-1</div>
<br>
<span>我是span标签</span><br>
<input type="button" value="绑定事件1" id="btn1">
<input type="button" value="绑定事件2" id="btn2">
<input type="button" value="绑定事件3" id="btn3">
<input type="button" value="绑定事件4" id="btn4">
<input type="button" value="绑定事件5" id="btn5">
<input type="button" value="绑定事件6" id="btn6">
</body>
</html>
说明: $(function () { }是jQuery库中的一个函数,其意思是当dom对象加载完成后执行该函数,如果上述代码省略该函数,是不会被执行的,因为再执行绑定事件的时候,dom对象还没有被加载完成,除非在dom对象代码的后面插入该js脚本段。
表单对象属性过滤器
(1)选择可用的文本框
语法:$(“:text:enabled”)
(2)选择不可用的文本框
语法:$(“:text:disabled”)
(3)复选框选中的元素
语法:$(“:checkbox:checked”)
(4)选择指定下拉列表的被选中元素
语法:$(“选择器>option:selected”)
实例如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="static/js/jquery.js"></script>
<style>
</style>
<script>
$(function () {
$("#btn1").click(function () {
let $obj=$(":text:enabled");
for(let i=0;i<$obj.length;i++){
$($obj[i]).val("哎呦,不错哟~");
alert($obj[i].value);
}
});
$("#btn2").click(function () {
let $obj=$(":checkbox:checked");
for(let i=0;i<$obj.length;i++){
alert($obj[i].value);
}
});
$("#btn3").click(function () {
let $obj=$("#lang>option:selected");
//或"select>option:selected"也ok
alert($obj.val());
});
});
</script>
</head>
<body>
<p>文本框</p>
<input type="text" value="文本框1"><br><br>
<input type="text" value="文本框2" disabled><br><br>
<input type="text" value="文本框3"><br><br>
<input type="text" value="文本框4" disabled><br><br>
<p>复选框</p>
<input type="checkbox" value="girl" checked>小姐姐<br>
<input type="checkbox" value="game" checked>游戏<br>
<input type="checkbox" value="football">足球<br>
<input type="checkbox" value="swim">游泳<br>
</body>
<p>下拉框</p>
<select id="lang">
<option value="java">Java语言</option>
<option value="go" selected>Go语言</option>
<option value="C++">C++语言</option>
<option value="python">Python语言</option>
</select>
<p>功能按钮</p>
<input type="button" value="获取可编辑文本框的value" id="btn1"><br><br>
<input type="button" value="获取被选择的复选框的value" id="btn2"><br><br>
<input type="button" value="获取被选择的下拉框的value" id="btn3">
</html>