选择器是jQuery的核心。一个选择器写出来类似$('#dom-id')。

为什么jQuery要发明选择器?回顾一下DOM操作中我们经常使用的代码:
// 按ID查找:
var a = document.getElementById('dom-id');
// 按tag查找:
var divs = document.getElementsByTagNames('div');
// 查找<p class="red">:
var ps = document.getElementsByTagNames('p');
// 过滤出class="red":
// TODO:
// 查找<table class="green">里面的所有<tr>:
var table = ...
for (var i=0; i<table.children; i++) {
// TODO: 过滤出<tr>
}
这些代码实在太繁琐了,并且,在层级关系中,例如,查找<table class="green">里面的所有<tr>,一层循环实际上是错的,因为<table>的标准写法是:
<table>
<tbody>
<tr>...</tr>
<tr>...</tr>
</tbody>
</table>
很多时候,需要递归查找所有子节点。
jQuery的选择器就是帮助我们快速定位到一个或多个DOM节点。
按ID查找
如果某个DOM节点有id属性,利用jQuery查找如下:
// 查找<div id="abc">:
var div = $('#abc');
注意,#abc以#开头。返回的对象是jQuery对象。
什么是jQuery对象?jQuery对象类似数组,它的每个元素都是一个引用了DOM节点的对象。
以上面的查找为例,如果id为abc的<div>存在,返回的jQuery对象如下:
[<div id="abc">...</div>]
如果id为abc的<div>不存在,返回的jQuery对象如下:
[]
总之jQuery的选择器不会返回undefined或者null,这样的好处是你不必在下一行判断if (div === undefined)。
jQuery对象和DOM对象之间可以互相转化:
var div = $('#abc'); // jQuery对象
var divDom = div.get(0); // 假设存在div,获取第1个DOM元素
var another = $(divDom); // 重新把DOM包装为jQuery对象
通常情况下你不需要获取DOM对象,直接使用jQuery对象更加方便。如果你拿到了一个DOM对象,那可以简单地调用$(aDomObject)把它变成jQuery对象,这样就可以方便地使用jQuery的API了。
按tag查找
按tag查找只需要写上tag名称就可以了:
var ps = $('p'); // 返回所有<p>节点
ps.length; // 数一数页面有多少个<p>节点
按class查找
按class查找注意在class名称前加一个.:
var a = $('.red'); // 所有节点包含`class="red"`都将返回
// 例如:
// <div class="red">...</div>
// <p class="green red">...</p>
通常很多节点有多个class,我们可以查找同时包含red和green的节点:
var a = $('.red.green'); // 注意没有空格!
// 符合条件的节点:
// <div class="red green">...</div>
// <div class="blue green red">...</div>
按属性查找
一个DOM节点除了id和class外还可以有很多属性,很多时候按属性查找会非常方便,比如在一个表单中按属性来查找:
var email = $('[name=email]'); // 找出<??? name="email">
var passwordInput = $('[type=password]'); // 找出<??? type="password">
var a = $('[items="A B"]'); // 找出<??? items="A B">
当属性的值包含空格等特殊字符时,需要用双引号括起来。
按属性查找还可以使用前缀查找或者后缀查找:
var icons = $('[name^=icon]'); // 找出所有name属性值以icon开头的DOM
// 例如: name="icon-1", name="icon-2"
var names = $('[name$=with]'); // 找出所有name属性值以with结尾的DOM
// 例如: name="startswith", name="endswith"
这个方法尤其适合通过class属性查找,且不受class包含多个名称的影响:
var icons = $('[class^="icon-"]'); // 找出所有class包含至少一个以`icon-`开头的DOM
// 例如: class="icon-clock", class="abc icon-home"
组合查找
组合查找就是把上述简单选择器组合起来使用。如果我们查找$('[name=email]'),很可能把表单外的<div name="email">也找出来,但我们只希望查找<input>,就可以这么写:
var emailInput = $('input[name=email]'); // 不会找出<div name="email">
同样的,根据tag和class来组合查找也很常见:
var tr = $('tr.red'); // 找出<tr class="red ...">...</tr>
多项选择器
多项选择器就是把多个选择器用,组合起来一块选:
$('p,div'); // 把<p>和<div>都选出来
$('p.red,p.green'); // 把<p class="red">和<p class="green">都选出来
要注意的是,选出来的元素是按照它们在HTML中出现的顺序排列的,而且不会有重复元素。例如,<p class="red green">不会被上面的$('p.red,p.green')选择两次。
# jquery
# 选择器
# 详解jquery选择器的原理
# 常用jQuery选择器汇总
# jQuery选择器实例应用
# 详解jQuery选择器
# JS 验证密码 不能为空
# 必须含有数字、字母、特殊字符
# 长度在8-12位
# easyui-datagrid特殊字符不能显示的处理方法
# js控制文本框禁止输入特殊字符详解
# jQuery选择器特殊字符与属性空格问题
# 多个
# 就可以
# 还可以
# 多项
# 递归
# 表单
# 的是
# 都是
# 如果你
# 会有
# 有很多
# 两次
# 把它
# 你不
# 我们可以
# 也很
# 要注意
# 不受
# 不存在
相关文章:
焦点电影公司作品,电影焦点结局是什么?
如何确保FTP站点访问权限与数据传输安全?
小建面朝正北,A点实际方位是否存在偏差?
西安大型网站制作公司,西安招聘网站最好的是哪个?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
韩国服务器如何优化跨境访问实现高效连接?
如何在西部数码注册域名并快速搭建网站?
ui设计制作网站有哪些,手机UI设计网址吗?
建站之星在线客服如何快速接入解答?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
如何快速生成可下载的建站源码工具?
如何快速辨别茅台真假?关键步骤解析
制作网站的基本流程,设计网站的软件是什么?
网页设计与网站制作内容,怎样注册网站?
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
ppt制作免费网站有哪些,ppt模板免费下载网站?
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
,网站推广常用方法?
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
宝塔建站后网页无法访问如何解决?
建站主机选购指南:核心配置优化与品牌推荐方案
山东网站制作公司有哪些,山东大源集团官网?
海南网站制作公司有哪些,海口网是哪家的?
如何快速使用云服务器搭建个人网站?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
高防服务器租用如何选择配置与防御等级?
XML的“混合内容”是什么 怎么用DTD或XSD定义
建站之星如何快速解决建站难题?
如何有效防御Web建站篡改攻击?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
javascript基本数据类型及类型检测常用方法小结
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
如何快速搭建高效可靠的建站解决方案?
建站之星导航配置指南:自助建站与SEO优化全解析
建站主机CVM配置优化、SEO策略与性能提升指南
建站之星各版本价格是多少?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
临沂网站制作企业,临沂第三中学官方网站?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
昆明网站制作哪家好,昆明公租房申请网上登录入口?
如何快速建站并高效导出源代码?
小型网站制作HTML,*游戏网站怎么搭建?
jQuery 常见小例汇总
免费ppt制作网站,有没有值得推荐的免费PPT网站?
购物网站制作公司有哪些,哪个购物网站比较好?
活动邀请函制作网站有哪些,活动邀请函文案?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
*请认真填写需求信息,我们会在24小时内与您取得联系。