详解jQuery选择器


Posted in Javascript onDecember 21, 2016

大致介绍

终于开始了我的jQuery学习之路!感觉不能再拖了,要边学习原生JavaScript边学习jQuery

jQuery是什么?

jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设 计和Ajax交互。

jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。(来自百度-_-)

jQuery对象和DOM对象

我们在编写脚本时,可能会同时用到原生JavaScript和jQuery,那么这时就会存在一些问题。要解决这些问题就先得认识jQuery对象和DOM对象

DOM对象:通过例如getElementById方法获取到DOM树中的元素就是DOM对象

jQuery对象:通过jQuery包装DOM对象后产生的对象

注意:jQuery对象和DOM对象不能使用对方的任何方法

// 错误
 $('div').innerHTML;
 // 错误
 document.getELementsByTagName('div')[0].html(); 

jQuery对象和DOM对象是可以互相转化的

jQuery对象转成DOM对象有两种方法:

1、[index]

var $div = $('div');//jQuery对象
 var div = $div[0];//DOM对象

2、get(index)

var $div = $('div');//jQuery对象
 var div = $div.get(0);//DOM对象

DOM对象转成jQuery对象有一种方法:$(DOM对象)

var div = document.getELementsByTagName('div')[0];//DOM对象
 var $div = $(div);//jQuery对象

jQuery选择器

jQuery中的选择器完全继承了CSS的风格

详解jQuery选择器

逐一来看

基本选择器

改变id为div1的所有div的背景色

$('#div1').css('background','#bbffaa');

改变所有p标签和class为one的div的背景色

$('p,.one').css('background','#bbffaa');

层次选择器

选取div里的所有span元素

$('div span');

选取div下元素名是span的子元素

$('div > span');

选取class是one的下一个<div>同辈元素

$('.one + div');

选取class是one的后面的所有的<div>同辈元素

$('.one ~ div');

过滤选择器

1、基本过滤选择器

选取所有<div>元素中第一个<div>元素

$('div:first');

选取class不是one的<div>元素

$('div:not(.one)');

选取索引是偶数的的<div>元素

$('div:even');

选取索引等于2的<div>元素

$('div:eq(2)');

选取索引大于2的<div>元素

$('div:gt(2)');

选取所有标题元素,例如h1、h2等

$(':header');

选取当前正在执行动画的所有元素

$(':animated');

选取获取当前焦点的元素

$(':focus');

2、内容过滤选择器

选取含有文本“坚持”的<div>元素

$('div:contains('坚持')');

选取不包含子元素或者文本的<div>元素

$('div:empty');

选取含有<p>元素的<div>元素

$('div:has(p)');

选取含有子元素或者文本的元素

$('div:parent');

3、可见性过滤选择器

选取所有不可见的元素。包括<input type="hidden" />,<div style="display:none">和<div style="overflow:hidden">

$(':hidden');

选取所有可见的<div>元素

$('div:visible');

4、属性过滤选择器

选取有id属性的元素

$('div[id]');

选取id等于myId的<div>元素

$('div[id="myId"]');

选取id值不等于myId的<div>元素

$('div[id!="myId"]');

选取id值以my开头的<div>元素

$('div[id^="my"]');

选取id值以my结尾的<div>元素

$('div[id$="my"]');

选取id值含有my的<div>元素

$('div[id*="my"]');

选取属性title等于en或者以en为前缀(en后跟一个连字符'-')的元素

$('div[title|="en"]');

选取属性title中用空格分隔的值中包含字符en的<div>元素

$('div[title~="en"]');

选取拥有属性id并且属性title以en为前缀的<p>元素

$('p[id][title|="en"]');

5、子元素过滤器

选取每个class为one的<div>父元素下的第2个子元素

$('div.one :nth-child(2)');

选取每个class为one的<div>父元素下的第1个子元素

$('div.one :first-child');

选取<ul>中是唯一子元素的<li>元素

$('ul li:only-child');

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

选取id为"form1"表单内的所有可用元素

$('#form1:enabled');

选取id为"form1"表单内的所有不可用元素

$('#form1:disabled');

选取所有被选中的<input>元素

$('input:checked');

选取所有被选中的选项元素

$('select option:selector');

表单选择器

选取所有的<input>、<textarea>、<select>和<button>元素

$(':input');

选取所有的单行文本框

$(':text');

选取所有的不可见的元素

 $(':hidden');

其余的选择方法都可以通过单词了解到意思(例如 :submit 就是选择所有的提交按钮)就不再赘述。

参考资料:锋利的jQuery(第二版) https://3water.com/books/92918.html

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

 

Javascript 相关文章推荐
原生javascript实现图片弹窗交互效果
Jan 12 Javascript
node.js 使用ejs模板引擎时后缀换成.html
Apr 22 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
May 24 Javascript
利用JQuery阻止事件冒泡
Dec 01 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
Dec 29 Javascript
javascript实现下雨效果
Mar 27 Javascript
js下载文件并修改文件名
May 08 Javascript
Node.js 8 中的 util.promisify的详解
Jun 12 Javascript
React Native react-navigation 导航使用详解
Dec 01 Javascript
默认浏览器设置及vue自动打开页面的方法
Sep 21 Javascript
JS大坑之19位数的Number型精度丢失问题详解
Apr 22 Javascript
JavaScript 面向对象基础简单示例
Oct 02 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
Dec 21 #Javascript
js实现可输入可选择的select下拉框
Dec 21 #Javascript
详解handlebars+require基本使用方法
Dec 21 #Javascript
JS实现的驼峰式和连字符式转换功能分析
Dec 21 #Javascript
JS实现的RGB网页颜色在线取色器完整实例
Dec 21 #Javascript
js querySelector() 使用方法
Dec 21 #Javascript
简单实现Vue的observer和watcher
Dec 21 #Javascript
You might like
PHP daddslashes 使用方法介绍
2012/10/26 PHP
深入apache host的配置详解
2013/06/09 PHP
解析PHP提交后跳转
2013/06/23 PHP
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
邮箱下拉自动填充选择示例代码附图
2014/04/03 Javascript
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
2015/08/03 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
微信小程序链接传参并跳转新页面
2016/11/29 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
addeventlistener监听scroll跟touch(实例讲解)
2017/08/04 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
2017/09/04 Javascript
JS实现的文件拖拽上传功能示例
2018/05/21 Javascript
简单学习5种处理Vue.js异常的方法
2019/06/17 Javascript
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
2019/10/26 Javascript
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
JS highcharts实现动态曲线代码示例
2020/10/16 Javascript
javascript实现点击小图显示大图
2020/11/29 Javascript
[00:37]食人魔魔法师轮盘吉兆顺应全新至宝将拥有额外款式
2019/12/19 DOTA
python文件特定行插入和替换实例详解
2017/07/12 Python
Python堆排序原理与实现方法详解
2018/05/11 Python
python人民币小写转大写辅助工具
2018/06/20 Python
Python Map 函数的使用
2020/08/28 Python
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
Nip + Fab官网:英国美容品牌
2019/08/26 全球购物
大学三年的自我评价
2013/12/25 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
沈阳故宫导游词
2015/01/31 职场文书
兴趣班停课通知
2015/04/24 职场文书
学校证明范文
2015/06/24 职场文书
小学语文国培研修日志
2015/11/13 职场文书
教你部署vue项目到docker
2022/04/05 Vue.js
Python matplotlib绘制雷达图
2022/04/13 Python