jQuery 基础教程 (三)之jQuery的选择器

一、jQuery 选择器

(1)选择器是 jQuery 的根基, 在 jQuery 中, 对事件处理, 遍历 DOM 和 Ajax 操作都依赖于选择器

(2)jQuery 选择器的优点:

简洁的写法

$('#id)    //documnet.getElementById('id');
$('p')     //documnet.getElementByTagName('p');

(3)完善的事件处理机制

//若在网页中没有id为'id'的元素,浏览器会报错
//document.getElementById('id').style.backgroundColor='blue';//需要先判断document.getElementById('id')是否存在
if(document.getElementById('id'))document.getElementById('id').style.backgroundColor='blue';//使用jQuery获取网页中的元素即使不存在页面也不会报错
$("#id").css("backgroundColor","blue");

 

二、基本选择器

(1)基本选择器是 jQuery 中最常用的选择 器, 也是最简单的选择器, 它通过元素 id, class 和标记名来查找 DOM 元素

(2)基本选择器示例

(A)改变 id 为 one 的元素的背景色为 红色

    $("#one").css("backgroundColor","red");

(B)改变元素名为的所有元素的背景色为 # bbffaa,字体颜色为红色

    $("p").css({color:"red",backgroundColor:"#bbffaa"});

(C)改变第一个元素的背景色为红色

    $("p").eq(0).css("backgroundColor","red");

(D)改变所有元素和 id 为 one 的元素的背 景色为 # bbffaa

     $("h1,#one").css("backgroundColor","#bbffaa");

 

三、层次选择器

(1)如果想通过 DOM 元素之间的层次关系来获取特定元素, 例如后代元素, 子元素, 相邻元素, 兄弟元素等, 则需要使 用层次选择器

注意: (“prev ~ div”) 选择器只能选择 “# prev ” 元素后 面的同辈元素; 而 jQuery 中的方法 siblings() 与前后位 置无关, 只要是同辈节点就可以选取

(2)层次选择器示例

(A)改变内所有的背景色为 # bbffaa

    $(“body div")

(B)改变内子的背景色为 # bbffaa

    $("body>div")

(C)改变 id 为 one 的下一个的背景色为 # bbffaa

    $("#one+div")

(D)改变 id 为 two 的元素后面的所有兄弟的元素的背 景色为 # bbffaa

    $("#two~div")

(E)改变 id 为 two 的元素所有兄弟元素的背景色为 # bbffaa

    $("#two"). siblings("p")

 

四、过滤选择器

(1)过滤选择器主要是通过特定的过滤规则来 筛选出所需的 DOM 元素, 该选择器都以 “:” 开头

(2)按照不同的过滤规则, 过滤选择器又可分为 基本过滤, 内容过滤, 可见性过滤, 属性过滤, 子元素过滤和表单对象属性过滤选择器.

(3)基本过滤选择器

(4)基本过滤选择器示例

(A)改变第一个 div 元素的背景色为 # bbffaa

    $("div:first")

(B)改变id不为 one 的所有p元素的背景色为 # bbffaa

    $("p:not('#one')")

(C)改变索引值为偶数的 tr元素的背景色为 # bbffaa

    $(“tr:even")

(D)改变索引值为大于 3 且为奇数的 p元素的背景色为 # bbffaa

    $(“p:gt(3):odd")

(E)改变所有的标题元素的背景色为 # bbffaa

   $(":header")

(F)改变当前正在执行动画的所有元素的背景色为 # bbffaa

   $(":animated")

 

五、内容过滤选择器

(1)内容过滤选择器的过滤规则主要体现在它 所包含的子元素和文本内容上

(2)内容过滤选择器示例

(A)改变含有文本 ‘di’ 的 p元素的背景色为 # bbffaa

    $("p:cotains(di)")

(B)改变不包含子元素(或者文本元素) 的 div 空 元素的背景色为 # bbffaa

   $("div:empty")

(C)改变含有 class 为 mini 元素的 p元素的背景 色为 # bbffaa

     $("p:has(.mini)")

(D)改变含有子元素(或者文本元素)的div元素 的背景色为 # bbffaa

    $("div:parent")

 

六、可见性过滤选择器

(1)可见性过滤选择器是根据元素的可见和不可见状态来选 择相应的元素

(2)可见选择器 :hidden 不仅包含样式属性 display 为 none 的元素, 也包含文本隐藏域 (<input type=“hidden”>)和 visible:hidden 之类的元素

(3)可见性过滤选择器示例

(A)改变所有可见的div元素的背景色为 # bbffaa 

    $("div:visible")

(B)选取所有不可见的元素, 利用 jQuery 中的 show() 方法将它们显示出来, 并设置其背景 色为 # bbffaa 

    $(":hidden")

(C)选取所有的文本隐藏域, 并打印它们的值

     $("input:hidden")

 

七、属性过滤选择器

(1)属性过滤选择器的过滤规则是通过元素的 属性来获取相应的元素

(2)属性过滤选择器示例

(A)选取有属性id的div元素,然后在结果中选取属性title值 含有“es”的 div 元素.

    $("div[id][title='es']")

(B)含有属性title 的div元素.

     $("div[title]")

(C)属性title值等于"test"的div元素.

    $("div[title='test']")

(D)属性title值不等于"test"的div元素(没有属性title的也将被选中).

     $("div[title!='test']")

(E)属性title值 以"te"开始 的div元素.

     $("div[title^='te']")

(F)属性title值 以"est"结束 的div元素.

     $("div[title$='est']")

(G)属性title值 含有"es"的div元素.

    $("div[title*='es']") 

 

八、子元素过滤选择器

(1)nth-child() 选择器详解如下:

(A) :nth-child(even/odd): 能选取每个父元素下的索引值 为偶(奇)数的元素

(B):nth-child(2): 能选取每个父元素下的索引值为 2 的 元素

(C):nth-child(3n): 能选取每个父元素下的索引值是 3 的 倍数 的元素

(D):nth-child(3n + 1): 能选取每个父元素下的索引值是 3n + 1的元素

(2)子元素过滤选择器示例

每个class为one的div父元素下的第2个子元素.

   $("div.one:nth-child(2)")

每个class为one的div父元素下的第一个子元素

   $("div.one:first-child")   $("div.one:nth-child(1)")

每个class为one的div父元素下的最后一个子元素

   $("div.one:last-child")

如果class为one的div父元素下的仅仅只有一个子元素, 那么选中这个子元素

   $("div.one:only-child")

 

九、表单对象属性过滤选择器

(1)此选择器主要对所选择的表单元素进行过滤

(2)表单对象属性过滤选择器示例

利用 jQuery 对象的 val() 方法改变表单内 可用 元素的值

    $(":enabled").val('xx')

利用 jQuery 对象的 val() 方法改变表单内 不可用 元素的值

    $(":disabled").val('xx')

利用 jQuery 对象的 length 属性获取多选框 选中的个数

    $("input[type='checkbox']:checked").length

利用 jQuery 对象的 text() 方法获取下拉框 选中的内容

   $(":selected").text()

 

十、表单选择器

 

练习

1. 给网页中所有的<p>元素添加 onclick 事件

2. 是一个特定的表格隔行变色

3. 对多选框进行操作, 输出选中的多选框的个数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327044.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL Server 2014内存优化表的使用场景

最近一个朋友找到走起君&#xff0c;咨询走起君内存优化表如何做高可用的问题 大家知道&#xff0c;内存优化表是从SQL Server 2014开始引入&#xff0c;可能大家对内存优化表还是比较陌生&#xff0c;网上也鲜有内存优化表使用场景的文章 朋友公司做的业务是跟蜂鸟配送类似的配…

春节祝福提前到

2017 鸡 年 大 吉 HAPPY NEW YEAR 鸡年起算自二十四节气之立春&#xff0c;因为生肖年依附于干支纪年&#xff0c;而干支纪年又是干支历的纪年方法。历代官方历书&#xff08;即黄历&#xff09;皆如此。农历只是借用干支来纪年&#xff0c;和干支历是两种不同的历法&#xf…

jQuery 基础教程 (一)之jQuery的由来及简介

一、RIA技术 &#xff08;1&#xff09;RIA(Rich Internet Applications) 富互联网应用,具有高度互动性、丰富用户体验以及功能强大的客户端。 &#xff08;2&#xff09;常见的RIA技术 Ajax Flex Sliverlight &#xff08;3&#xff09;JavaScript及其框架是实现RIA的重…

外键

如图有两张表&#xff0c;classId 是T_Student的外键&#xff0c;是T_class 表的主键&#xff0c; 如果我们要删除T_class 表中classId为1的字段&#xff0c;程序是会报错的&#xff0c;因为t_student表中有数据和classId为1的字段关联了&#xff0c;是不能删除的&#xff0c;这…

新春大吉,2017 Make .NET Great

今天年初六&#xff0c;新春好景象&#xff0c;送礼处处有新意。这个春节暂停了几天的公众号更新&#xff0c;今天就和大家回顾下最近几天发生在我们身边的.NET 圈里的信息。 1、 微软正式公布了.NET Core SDK 1.0 RC3的信息&#xff0c;其实早已包含在最近更新的Visual Studio…

头条面试题:请谈谈Redis 9种数据结构以及它们的内部编码实现

转载自 头条面试题&#xff1a;请谈谈Redis 9种数据结构以及它们的内部编码实现 90%的人知道Redis 5种最基本的数据结构&#xff1b; 只有不到10%的人知道8种基本数据结构&#xff0c;5种基本bitmapGeoHashHyperLogLog&#xff1b; 只有不到5%的人知道9种基本数据结构&…

【初码干货】关于.NET玩爬虫这些事

这几天在微信群里又聊到.NET可以救中国但是案例太少不深的问题&#xff0c;我说.NET玩爬虫简直就是宇宙第一&#xff0c;于是大神朱永光说&#xff0c;你为何不来写一篇总结一下&#xff1f; 那么今天就全面的来总结一下&#xff0c;在.NET生态下&#xff0c;如何玩爬虫 关于爬…

【JVM】浅谈双亲委派和破坏双亲委派

转载自 【JVM】浅谈双亲委派和破坏双亲委派 一、前言 笔者曾经阅读过周志明的《深入理解Java虚拟机》这本书&#xff0c;阅读完后自以为对jvm有了一定的了解&#xff0c;然而当真正碰到问题的时候&#xff0c;才发现自己读的有多粗糙&#xff0c;也体会到只有实践才能加深理…

开源OSS.Social微信项目解析

前言&#xff1a;OSS.Social是个开源的社交网站接口集成项目&#xff0c;当前也有很多其他不错的项目&#xff0c;不过始终没有我想要的那种简单清晰&#xff0c;只能撸起袖子&#xff0c;从头打造一个。当前正在进行的是对微信项目的开发&#xff0c;这里把对接口的整理&#…

Apdex(Application Performance Index)量化应用性能

“道琼斯指数帮助人们衡量股市行情变化&#xff0c;Apdex 指数帮助您衡量用户心情变化。“ 一.为什么需要 Apdex 性能指数&#xff0c;Apdex(Application Performance Index)是一个国际通用标准&#xff0c;Apdex 是用户对应用性能满意度的量化值。它提供了一个统一的测量和报告…

云计算设计模式(一)缓存预留模式

云带来的改变是显而易见的&#xff0c;云计算是一种按使用量付费的模式&#xff0c;这种模式提供可用的、便捷的、按需的网络访问&#xff0c; 进入可配置的计算资源共享池&#xff08;资源包括网络&#xff0c;服务器&#xff0c;存储&#xff0c;应用软件&#xff0c;服务&am…

稀疏数组与二维数组相互转化

图示 二维数组转稀疏数组的思路 遍历 原始的二维数组&#xff0c;得到有效数据的个数 sum根据sum 就可以创建 稀疏数组 sparseArr int[sum 1] [3]将二维数组的有效数据数据存入到 稀疏数组 稀疏数组转原始的二维数组的思路 先读取稀疏数组的第一行&#xff0c;根据第一行的…

云计算设计模式(二)——断路器模式

云带来的改变是显而易见的&#xff0c;云计算是一种按使用量付费的模式&#xff0c;这种模式提供可用的、便捷的、按需的网络访问&#xff0c; 进入可配置的计算资源共享池&#xff08;资源包括网络&#xff0c;服务器&#xff0c;存储&#xff0c;应用软件&#xff0c;服务&am…

excel打开csv 出现乱码怎么解决 逗号分隔

excel打开csv 出现乱码怎么解决 https://jingyan.baidu.com/article/ac6a9a5e4c681b2b653eacf1.html CSV是逗号分隔值的英文缩写&#xff0c;通常都是纯文本文件。CSV格式是分隔的数据格式&#xff0c;有字段/列分隔的逗号字符和记录/行分隔换行符。通常CSV文件可以用EXCEL正常…

在ASP.NET Core下使用SignalR技术

一、前言 上次我们讲到过如何在ASP.NET Core中使用WebSocket,没有阅读过的朋友请参考 WebSocket in ASP.NET Core 文章 。这次的主角是SignalR它为我们提供了简化操作WebSocket的框架。 ASP .NET SignalR 是一个ASP.NET 下的类库&#xff0c;可以在ASP.NET 的Web项目中实现实时…

mybatis简单案例源码详细【注释全面】——前期准备

mybatis 是个什么东西&#xff0c;这里就不必说了&#xff0c;大家去网上搜搜看就行了&#xff0c;在这里我主要是分享一下最基本的增删改查案例以及配置信息&#xff0c;测试信息。 首先我们创建个数据库&#xff1a; /* SQLyog 企业版 - MySQL GUI v8.14 MySQL - 5.5.40 : …

云计算设计模式(三)——补偿交易模式

撤消由一系列步骤&#xff0c;它们共同限定了最终一致性操作中&#xff0c;如果一个或多个步骤失败执行的工作。按照最终一致性模型&#xff0c;业务实现复杂的业务流程和工作流的云托管的应用程序中很常见。 背景和问题 在云中运行的应用程序频繁修改数据。此数据可跨在各种地…