详解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 相关文章推荐
css把超出的部分显示为省略号的方法兼容火狐
Jul 23 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
Jan 11 Javascript
js写一个字符串转成驼峰的实例
Jun 21 Javascript
$.extend 的一个小问题
Jun 18 Javascript
简单谈谈node.js 版本控制 nvm和 n
Oct 15 Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
Feb 16 Javascript
原生JS实现幻灯片
Feb 22 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
Apr 14 Javascript
jQuery查找dom的几种方法效率详解
May 17 jQuery
微信小程序getLocation 需要在app.json中声明permission字段
Mar 03 Javascript
js实现表单项的全选、反选及删除操作示例
Jun 05 Javascript
js正则匹配markdown里的图片标签的实现
Mar 24 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操作MongoDB GridFS 存储文件的详解
2013/06/20 PHP
php查询相似度最高的字符串的方法
2015/03/12 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
2015/12/21 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
有一段有意思的代码-javascript现实多行信息
2007/08/26 Javascript
CSS(js)限制页面显示的文本字符长度
2012/12/27 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
JavaScript中对象property的删除方法介绍
2014/12/30 Javascript
javascript异步处理工作机制详解
2015/04/13 Javascript
AngularJS 服务详细讲解及示例代码
2016/08/17 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
nodejs之get/post请求的几种方式小结
2017/07/26 NodeJs
BootStrap入门学习第一篇
2017/08/28 Javascript
react-native-tab-navigator组件的基本使用示例代码
2017/09/07 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
2018/01/18 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
2018/10/19 Javascript
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
2019/03/16 Javascript
详解Vue、element-ui、axios实现省市区三级联动
2019/05/07 Javascript
layui使用数据表格实现购物车功能
2019/07/26 Javascript
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
深入理解NumPy简明教程---数组2
2016/12/17 Python
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
django 自定义filter 判断if var in list的例子
2019/08/20 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
Django静态文件加载失败解决方案
2020/08/26 Python
详解CSS3 弹性布局快速入门
2019/06/06 HTML / CSS
Bluebella法国官网:英国性感内衣品牌
2019/05/03 全球购物
召开会议通知范文
2015/04/15 职场文书
村级干部党员公开承诺事项
2015/05/04 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
使用@Value值注入及配置文件组件扫描
2021/07/09 Java/Android
vue实现列表垂直无缝滚动
2022/04/08 Vue.js
Redis基本数据类型List常用操作命令
2022/06/01 Redis