第1章 WEB前端开发工程师-jQuery框架 1-3:jQuery普通选择器

                                              jQuery 普通选择器

 

本节课所讲内容:

1. jQuery普通选择器

 

                                                               主讲教师:Head老师

一. jQuery普通选择器

在使用 jQuery 选择器时,我们首先必须使用“$()”函数来包装我们的 CSS 规则。而

CSS 规则作为参数传递到 jQuery 对象内部后,再返回包含页面中对应元素的 jQuery 对象。

随后,我们就可以对这个获取到的 DOM 节点进行行为操作了。

#box { //使用 ID 选择器的 CSS 规则

color:red; //将 ID 为 box 的元素字体颜色变红

}

在 jQuery 选择器里,我们使用如下的方式获取同样的结果:

$('#box').css('color', 'red'); //获取 DOM 节点对象,并添加行为

那么除了 ID 选择器之外,还有两种基本的选择器,分别为:元素标签名和类(class):

选择器

CSS 模式

jQuery 模式

描述

元素名

div {}

$('div')

获取所有 div 元素的 DOM 对象

ID

#box {}

$('#box')

获取一个 ID 为 box 元素的 DOM 对象

. box{}

$('.box')

获取所有class为box的所有DOM对象

$('div').css('color', 'red'); //元素选择器,返回多个元素

$('#box').css('color', 'red'); //ID 选择器,返回单个元素

$('.box').css('color', 'red'); //类(class)选择器,返回多个元素

为了证明 ID 返回的是单个元素,而元素标签名和类(class)返回的是多个,我们可以采

用 jQuery 核心自带的一个属性 length 或 size()方法来查看返回的元素个数。

alert($('div').size()); //3 个

alert($('#box').size()); //1 个,后面两个失明了

alert($('.box').size()); //3 个

同理,你也可以直接使用 jQuery 核心属性来操作:

alert($('#box').length); //1 个,后面失明了

警告:有个问题特别要注意,ID 在页面只允许出现一次,我们一般都是要求开发者要

遵守和保持这个规则。但如果你在页面中出现三次,并且在 CSS 使用样式,那么这三个元

素还会执行效果。但如果,你想在 jQuery 这么去做,那么就会遇到失明的问题。所以,开

发者必须养成良好的遵守习惯,在一个页面仅使用一个 ID。

$('#box').css('color', 'red'); //只有第一个 ID 变红,后面两个失明

jQuery 选择器的写法与 CSS 选择器十分类似,只不过他们的功能不同。CSS 找到元素

后添加的是单一的样式,而 jQuery 则添加的是动作行为。最重要的一点是:CSS 在添加样

式的时候,高级选择器会对部分浏览器不兼容,而 jQuery 选择器在添加 CSS 样式的时候却

不必为此烦恼。

#box > p { //CSS 子选择器,IE6 不支持

color:red;

}

$('#box > p').css('color','red'); //jQuery 子选择器,兼容了 IE6

jQuery 选择器支持 CSS1、CSS2 的全部规则,支持 CSS3 部分实用的规则,同时它还有

少量独有的规则。所以,对于已经掌握 CSS 的开发人员,学习 jQuery 选择器几乎是零成本。

而jQuery 选择器在获取节点对象的时候不但简单,还内置了容错功能,这样避免像 JavaScript

那样每次对节点的获取需要进行有效判断。

$('#pox').css('color', 'red'); //不存在 ID 为 pox 的元素,也不报错

document.getElementById('pox').style.color = 'red'; //报错了

因为 jQuery 内部进行了判断,而原生的 DOM 节点获取方法并没有进行判断,所以导

致了一个错误,原生方法可以这么判断解决这个问题:

if (document.getElementById('pox')) { //先判断是否存在这个对象

document.getElementById('pox').style.color = 'red';

}

那么对于缺失不存在的元素,我们使用 jQuery 调用的话,怎么去判断是否存在呢?因

为本身返回的是 jQuery 对象,可能会导致不存在元素存在与否,都会返回 true。

if ($('#pox').length > 0) { //判断元素包含数量即可

$('#pox').css('color', 'red');

}

除了这种方式之外,还可以用转换为 DOM 对象的方式来判断,例如:

if ($('#pox').get(0)) {} 或 if ($('#pox')[0]) {} //通过数组下标也可以获取 DOM 对象

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值