jQuery中的选择器及筛选器
1.jQuery的介绍
1.jQuery是继prototype之后又一个优秀的Javascript框架。其宗旨是——WRITE LESS,DO MORE!
2.它是轻量级的js库,这是其它的js库所不及的
3.它兼容CSS3,还兼容各种浏览器
4.jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTMLdocuments、events、实现动画效果,并且方便地为网站提供AJAX交互。
5.jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。
下载地址: jQuery官网
2.jQuery对象
jQuery对象是通过jQuery包装DOM对象后产生的对象
jQuery对象是jQuery独有的,如果一个对象是jQuery对象,那么它就可以使用jQuery里的方法.
$(".class_name") 意思是获取当前html文件中所有class名为class_name的标签
如果用DOM来实现的代码:
document.getElementsByClassName("class_name")
虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法.
约定:如果获取的是jQuery对象,那么要在变量前面加上$
例如:
var $variable=jQuery对象
var variable=DOM对象
把jQuery对象转化为DOM对象的方法:
$("#msg").html()
$("#msg")[0].innerHTML
jQuery的基础语法:
$(selector).action()
在一个HTML文档中使用jQuery,必须在HTML文档中的title下面插入一句话:
<script src="jquery-3.2.1.js"></script>
3.寻找元素(选择器和筛选器)
3.1 基本选择器:
$("*") 选取所有的css标签
$("#id1") 选取所有的id名为id1的标签
$(".class_name") 选取所有的class名为class_name的标签
$("element1") 选取所有的标签名为element1的标签
$(".class,p,div") 选取符合这三个条件中任何一个条件的标签
例子:
标签代码:
<p id="p1">p1</p>
<div class="c1">div1</div>
处理代码:
var ele1=document.getElementById("p1");//获取当前HTML文档中id号为"p1"的标签
var ele2=document.getElementsByClassName("c1");//获取当前HTML文档中class名为"c1"的标签
console.log(ele1.innerHTML);//打印id号为"p1"的标签的值
console.log($("#p1").html());//使用jQuery方法获取当前文档中id号为"p1"的标签并打印其值
console.log(ele2[0].innerHTML);//打印class名为"c1"的第一个标签的值
console.log($(".c1").html());//使用jQuery方法获取当前文档中class名为"c1"的标签并打印其值
打印结果如下:
jQuery与javascript最大的不同表现在批量处理:
用javascript处理标签时,如果查找到的是一个集合的话,必须在使用循环一个一个的处理,
而jQuery则不需要使用循环就可以直接批量处理这个集合
例子:
标签代码:
<div class="c1">div1</div>
<div class="c1">div2</div>
<div class="c1">div3</div>
<div class="c1">div4</div>
现在想把这四个标签都变成红颜色的,使用javascript处理的代码如下:
var eles_div=document.getElementsByClass("c1");
for (var i=0;i<eles_div.length;i++){
eles_div[i].style.color="red";
}
而使用jQuery实现批量处理这些标签的代码:
$(".c1").css("color","red");
实现结果如下:
3.2 层级选择器
$(".father_div div") 后代选择器
$(".father_div>div") 子代选择器
$(".father_div+div") 毗邻选择器
$(".father_div~div") 普通相邻选择器
用法跟CSS的选择器用法一样
3.3 基本筛选器
$("div:first") 选取第一个div标签
$("div:last") 选取最后一个div标签
$("div:eq(2)") 选取索引为2的div标签
$("div:lt(2)") 选取索引小于2的div标签
$("div:gt(2)") 选取索引大于2的div标签
$("div:even") 选取索引为偶数的div标签
$("div:odd") 选取索引为奇数的div标签
$(":focus") 当前获取焦点的元素
$(":animated") 正在执行动画效果的元素
标签代码:
<div class="c1">div1</div>
<div class="c1">div2</div>
<div class="c1">div3</div>
<div class="c1">div4</div>
<div class="c1">div5</div>
<div class="c1">div6</div>
<div class="c1">div7</div>
例子一:
$("div:first").css("color","red");//把第一个div标签的颜色设置为红色
$("div:eq(2)").css("color","blue");//把索引为2的div标签颜色设置为蓝色
$("div:gt(2)").css("color","pink");//把索引大于2的div标签颜色设置为粉色
效果如下:
例子二:
$("div:lt(4)").css("color","blue");//把索引小于4的div标签颜色设置为蓝色
效果如下:
例子三:
$("div:even").css("color","red");//把索引为偶数的div标签颜色设置为红色
效果如下:
3.4 属性选择器
$("[id='div1']")//获取所有的"id='div1'"这个属性的标签
$("[name='img_list']")//获取所有的"name='img_list'"这个属性的标签
标签代码:
<div class="c1" name="test">div1</div>
<div name="test">div2</div>
<div class="c1" id="c100">div3</div>
例子一:
$("[name='test']").css("color","red");//把含有"name='test'"这类标签的颜色变成红色
$("[id='c100']").css("color","blue");//把含有"id='c100'"这类标签的颜色变成蓝色
效果如下:
操作二:
$("[name='test'][class]").css("color","red");//把含有"name='test'"又含有class这个类的标签颜色变成红色
效果如下:
3.5 表单选择器(只适用于input表单)
$("input:checked") 获取所有处于选中状态的复选框
$(":input") 获取所有的input,textarea,select和button元素
$(":text") 获取所有的单行文本框
$(":password") 获取所有的密码框
$("radio") 获取所有的单选按钮
$("checkbox") 获取所有的复选框
$("submit") 获取所有的提交按钮
$("reset") 获取所有的重置按钮
$("button") 获取所有的button按钮
$("file") 获取所有的文件域
标签代码:
<input type="text">
<input type="checkbox">
例子:
$("[type='text']").css("border","2px solid red");//把"type='text'"这种输入框的边框设置为2px的红色实线边框
显示如下:
上面的代码也可以写成下面这样:
$(":text").css("border","2px solid red");//把"type='text'"这种输入框的边框设置为2px的红色实线边框
3.6 过滤筛选器
其用法与基本筛选器一样
$("li").eq(2) 获取列表中索引为2的标签
$("li").first() 获取列表中的第一个标签
$("ul li").hasclass("test") 查询列表中是否有"test"这个类
3.7查找筛选器
3.7.1 查找子标签
$("div").children(".div1") 查找div标签中包含div1的所有子类标签
$("div").find(".div2") 查找div标签中包含div2的所有的后代标签
标签如下:
<div class="div1">
<div class="div2">
<div class="div3">
<p>p1</p>
</div>
</div>
<p>p2</p>
</div>
<div class="div4">
<p class="p10" id="p3">p3</p>
<p class="p10">p4</p>
<p class="p10" id="p5">p5</p>
<p class="p10">p6</p>
<p class="p10">p7</p>
<p class="p10" id="p8">p8</p>
</div>
例子一:
$(".div1").find("p").css("color","blue")//查找类名为div1的标签的后代中所有的p标签,并把颜色设置成蓝色
显示如下:
例子二:
$(".div1").children("p").css("color","blue")//查找类名为div1的标签的子代中所有的p标签,并把颜色设置成蓝色
显示如下:
3.7.2 向下查找兄弟标签
$(".div1").next() 获取div1这个类的下一个标签
$(".div1").nextAll() 获取div1这个类的后面的所有标签
$(".div1").nextUntil("div2") 获取div1这个类后面,直到div2(不含div2)之间的所有标签
标签如下:
<div class="div1">
<div class="div2">
<div class="div3">
<p>p1</p>
</div>
</div>
<p>p2</p>
</div>
<div class="div4">
<p class="p10" id="p3">p3</p>
<p class="p10">p4</p>
<p class="p10" id="p5">p5</p>
<p class="p10">p6</p>
<p class="p10">p7</p>
<p class="p10" id="p8">p8</p>
</div>
例子一:
$("#p3").next().css("color","red");//把id为"p3"的标签的下一个标签,也即"p4"标签颜色设置为红色
$("#p5").nextAll().css("color","blue");//把id为"p5"以后的所有的标签颜色都设置成为蓝色的
显示如下:
例子二:
$("#p5").nextUntil("#p8").css("color","pink");//把id为"p5"以后的直到"p8"(不包含p8)标签前的所有标签颜色都设置成为粉色的
显示如下:
3.7.3 向上查找兄弟标签
$(".div1").prev() 获取div1类的前一个标签
$(".div1").prevAll() 获取div1类的所有的标签
$(".div1").prevUntil(div2) 获取div1类之前,直到div2(不含div2)的所有的标签
标签如下:
<div class="div1">
<div class="div2">
<div class="div3">
<p>p1</p>
</div>
</div>
<p>p2</p>
</div>
<div class="div4">
<p class="p10" id="p3">p3</p>
<p class="p10">p4</p>
<p class="p10" id="p5">p5</p>
<p class="p10">p6</p>
<p class="p10">p7</p>
<p class="p10" id="p8">p8</p>
</div>
例子一:
$("#p8").prev().css("color","red");//把id为"p8"的标签的上一个标签,也即"p7"标签颜色设置为红色
$("#p5").prevAll().css("color","yellow");//把id为"p5"的标签的上面的所有标签颜色设置为黄色
显示如下:
例子二:
$("#p8").prevUntil("#p5").css("color","blue");//把id为"p8"上面直到"p5"(不包含p5标签)之前的所有的标签颜色都设置成为蓝色的
显示如下:
3.7.4 查找所有兄弟标签
$(".div1").siblings() 获取div1类的所有的同级标签
标签如下:
<div class="div1">
<div class="div2">
<div class="div3">
<p>p1</p>
</div>
</div>
<p>p2</p>
</div>
<div class="div4">
<p class="p10" id="p3">p3</p>
<p class="p10">p4</p>
<p class="p10" id="p5">p5</p>
<p class="p10">p6</p>
<p class="p10">p7</p>
<p class="p10" id="p8">p8</p>
</div>
例子:
$("#p5").siblings().css("color","red");//把id为"p5"所有的兄弟标签颜色都设置成为红色的
显示如下:
3.7.5 查找父标签
$(".div1").parent() 获取div1类的父标签
$(".div1").parents() 获取div1类所有的父标签(包括父标签,父标签的父标签等,直到最上一级标签为止)
$(".div1").parentsUntil() 获取div1类所有的父标签,直到指定的条件停止
标签代码:
<div class="div1">
<div class="div2">
<div class="div3">
<p>p1</p>
</div>
</div>
<p>p2</p>
</div>
<div class="div4">
<p class="p10" id="p3">p3</p>
<p class="p10">p4</p>
<p class="p10" id="p5">p5</p>
<p class="p10">p6</p>
<p class="p10">p7</p>
<p class="p10" id="p8">p8</p>
</div>
例子一:
console.log($(".p10").parent().attr("class"));//打印"p10"类的父标签的类名
显示如下:
例子二:
$(".p10").parents().css("color","red");//把"p10"的父标签的样式设为红色
显示如下:
例子三:
$(".div3").parentsUntil(".div1").css("color","red")//获取从"div3"类直到"div1"类之前的父标签,并把其父标签的颜色高为红色
显示如下:
$("p").hasClass("test") 查找p标签中class名为test的标签
3.8更多选择器
$("[href]") 选取所有的href属性的元素
$("a[target='_blank']") 选取所有的target属性值等于"_blank"的<a>标签
$("a[target!='_blank']") 选取所有的target属性值不等于"_blank"的<a>标签
jQuery中的选择器及筛选器的更多相关文章
- jquery 选择器、筛选器、事件绑定与事件委派
一.jQuery简介 1.可用的jQuery服务器网站:https://www.bootcdn.cn/ jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTMLdocume ...
- jquery选择器,筛选器,属性,事件 基础
左边栏实例: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- jQuery中的选择器<思维导图>
选择器是jQuery的重要组成部分,在jQuery中,对事件处理.遍历DOM和Ajax操作都依赖于选择器.如果能熟练地使用选择器,不仅能简化代码,而且可以达到事半功倍的效果. 下面是关于jQuery中 ...
- jQuery中的选择器《思维导图》
学习jQuery的课程中,我对jQuery中的选择器有了更深的认识,它的简洁写法,完美的兼容性,可靠的处理机制,都让我们省了很多事, 下面是我在学习过程中对jQuery选择器写的思维导图(全屏查看:& ...
- jquery中判断选择器,找没找到元素用$().size()==0
jquery中判断选择器,找没找到元素用$().size()==0
- jQuery中,选择器既匹配开头又匹配结尾
jQuery中,选择器既匹配开头又匹配结尾的方法: [attr^=val]attr$=val [attr^=val][attr$=val]
- js进阶 11-18 jquery中操作选择器的方法有哪些
js进阶 11-18 jquery中操作选择器的方法有哪些 一.总结 一句话总结:add().addBack().end() 1.add()方法是干嘛的,举一例? 将add()方法后选择器选择的jqu ...
- js进阶 10-4 jquery中基础选择器有哪些
js进阶 10-4 jquery中基础选择器有哪些 一.总结 一句话总结: 1.群组选择器用的符号是什么? 群组选择器,中间是逗号 2.jquery中基础选择器有哪些? 5种,类,id,tag,群组, ...
- jQuery的基本使用及选择器和筛选器
回顾 事件 鼠标clickdblclickcontextmenumouseentermouseleavemousemovemousedownmouseup键盘keydownkeyupkeypress ...
随机推荐
- Java面向对象抽象类案例分析
/** 雇员示例: 需求:公司中程序员有姓名,工号,薪水,工作内容 项目经理除了有姓名,工号,薪水还有奖金,工作内容 对给出需求进行数据建模 分析: 在这个问题领域中,先找出涉及的对象 通过名词提炼法 ...
- java web开发 高并发处理
转自:http://blog.csdn.net/zhangzeyuaaa/article/details/44542161 java处理高并发高负载类网站中数据库的设计方法(java教程,java处理 ...
- js随机产生区间数
function selectFrom(startNumber, endNumber) { //1.从几开始 2.到几结束 var choice = endNumber - startNumber + ...
- JXLS 2.4.0系列教程(六)番外篇——导出图片(完结)
突然想起来有同学说过能不能导出图片,本来我是想说不懂的,后来我上官网查了查,还挺容易.我就简短的写一写怎么导出图片. 官方提供了导出图片标签: jx:image(lastCell="D10& ...
- jQuery中获取文档的高度、可视区域高度以及滚动条距页面顶部的高度
在写页面的时候,经常会碰到这样的情况,就是要获取文档的高度.可视区域高度或者滚动条距页面顶部的高度等情况. 但我总是有些爱搞混淆了,这里还是简单做个笔记吧,这里只限于使用jQuery来获取. 1.获取 ...
- css3中的关键帧技术分析应用
最近在研究网页加载进度效果的时候发现可以使用css3实现这个效果. 使用css3实现完全不需要图片,相比使用loading.gif的实现来说可能更快. 使用css3实现动态加载的效果,主要会涉及到几个 ...
- 解决无限 This file is indented with tabs instead of 4 spaces
File -> Settings -> Editor -> Code Style -> Java -> Tabs and Indents -> Use tab ch ...
- Binlog的三个业务应用场景
1.什么是binlog binlog是mysql的一种二进制日志文件,用来记录数据的变化.mysql使用binlog进行主从复制,如图: 客户端向master的mysql sever写入数据 当数据发 ...
- CSS3总结学习(一):CSS3用户界面
在CSS3中,新的用户界面属性有很多,本文重点介绍resize,box-sizing,offset. 浏览器支持,如下图,图片源于W3school 1.CSS Resizing 在css3,resiz ...
- 单KEY业务,数据库水平切分架构实践
本文将以"用户中心"为例,介绍"单KEY"类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践: 如何来实施水平切分 水平切分后常见的 ...