过滤器就是过滤条件,对已经定位到的数组中DOM对象进行过滤筛选,过滤条件不能独立出现再jQuery函数,如果使用只能出现在选择器后方。
jQuery中DOM对象顺序
<div>1</div> <!--dom1--><div>2</div> <!--dom2--><div>3</div> <!--dom3-->//jQuery对象会按照页面书写的顺序读取DOM对象$("div") == [dom1,dom2,dom13]
注意:过滤器不能单独使用,必须和选择器一块使用。
基本过滤器
- 选择第一个first,保留数组中第一个DOM对象
- 语法:
$("选择器:first")
- 语法:
- 选择最后一个last,保留数组中最后的DOM对象
- 语法:
$("选择器:last")
- 语法:
- 选择数组中指定对象
- 语法:
$("选择器:eq(数组索引)")
- 语法:
- 选择数组中小于指定索引的所有DOM对象
- 语法:
$("选择器:lt(数组索引)") //不含索引本身
- 语法:
- 选择数组中大于指定索引的所有DOM对象
- 语法:
$("选择器:gt(数组索引)") //不含索引本身
- 语法:
示例: //本示例中有一些jQuery对象事件的知识,可以先去事件了解一些后再来看下面代码。
<script type="text/javascript" src="./js/jquery-3.6.0.min.js"></script><script type="text/javascript">//页面加载完成后绑定事件,等同于onload$(function(){//为btn1绑定按钮事件$("#btn1").click(function(){//过滤器var $obj = $("div:first");$obj.css("color","red");});//为btn2绑定事件$("#btn2").click(function(){var $obj = $("div:last");$obj.css("color","green")})//为btn3绑定事件$("#btn3").click(function(){//指定第三个div改变颜色var $obj = $("div:eq(3)");$obj.css("color","blue");})//为btn4绑定事件$("#btn4").click(function(){//指定小于3的div改变颜色$("div:lt(3)").css("color",'orange');})//为btn5绑定事件$("#btn5").click(function(){//指定大于3的div改变颜色$("div:gt(3)").css("color",'yellow');})})</script>...<body><div id="one">div0</div><div id="two">div1</div><div>div2<div class="son" style="color: black;">div3</div><div class="son" style="color: black;">div4</div></div><div>div5</div><br/><span>我是span</span><br/><p>功能按钮</p><input type="button" id="btn1" value="选择第一个div0"/> <br/><input type="button" id="btn2" value="选择最后一个div5"/> <br/><input type="button" id="btn3" value="索引等于3的div"/> <br/><input type="button" id="btn4" value="索引小于3的div"/> <br/><input type="button" id="btn5" value="索引大于3的div"/> <br/></body>
表单属性过滤器
根据表单中DOM对象的状态情况,来过滤DOM对象的。如文本框是否为启用状态:enable、disable;选择状态:checked….
- 选择可用的文本框
- 语法:
$(":text:enable")
- 语法:
- 选择不可用的文本框
- 语法:
$(":text:disable")
- 语法:
- 复选框选中的元素
- 语法:
$(":checkbox:checked")
- 语法:
- 选择指定下拉列表的被选中元素
- 语法:
选择器>option:selected 表示的是父子关系,父>子
- 语法:
举个例子
<script type="text/javascript" src="./js/jquery-3.6.0.min.js"></script><script type="text/javascript">$(function(){//获取按钮$("#btn1").click(function(){//获取所有可用的文本框var $obj = $(":text:enabled");//设置对象的value值为hello,val()函数传值调用即可$obj.val("hello");})$("#btn2").click(function(){//获取选中的复选框var $obj = $(":checkbox:checked");//遍历数组for (var i = 0;i<$obj.length;i++){//alert($obj[i].value); 方法一alert($($obj[i]).val()); //方法二}})$("#btn3").click(function(){//获取当前的下拉列表var $obj = $("select>option:selected");//输出value值alert($obj.val());})})</script>...<body><p>文本框</p><input type="text" id="txt1" name="txt" value="text1" /><br/><input type="text" id="txt2" name="txt" value="text2" disabled/><br/><input type="text" id="txt3" name="txt" value="text3" /><br/><input type="text" id="txt4" name="txt" value="text4" disabled/><br/><br/><p>复选框</p><input type="checkbox" value="游泳"/>游泳<br/><input type="checkbox" value="健身" checked/>健身<br/><input type="checkbox" value="游戏" checked/>游戏<br/><br/><p>下拉列表</p><select id="lang"><option value="java">java</option><option value="python">python</option><option value="javascript" selected>javascript</option><option value="go">go</option></select><br/><p>功能按钮</p><button id="btn1">所以可用的text值设置为hello</button><br/><button id="btn2">显示被选中的复选框的值</button><br/><button id="btn3">显示下拉列表选中的值</button><br/></body>
