jQuery学习笔记之二——常规选择器

jQuery 最核心的组成部分就是: 选择器引擎。 它继承了 CSS 的语法, 可以对 DOM 元素的标签名、 属性名、 状态等进行快速准确的选择, 并且不必担心浏览器的兼容性。

简单选择器
#box { //使用 ID 选择器的 CSS 规则
color:red; //将 ID 为 box 的元素字体颜色变红
}在jQuery 选择器里,我们使用如下的方式获取同样的结果:

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

选择器 CSS 模式 jQuery 模式 描述
元素名 div {} $(‘div‘) 获取所有 div 元素的 DOM 对象
ID #box {} $(‘#box‘) 获取一个 ID 为 box 元素的 DOM 对象
类(class) .box{} $(‘.box‘) 获取所有 class 为 box 的所有 DOM 对象

 

$(‘div‘).css(‘color‘, ‘red‘); //元素选择器,返回多个元素
$(‘#box‘).css(‘color‘, ‘red‘); //ID 选择器,返回单个元素
$(‘.box‘).css(‘color‘, ‘red‘); //类(class)选择器,返回多个元素

jQuery 核心自带的一个属性 length 或 size()方法来查看返回的元素个数。
alert($(‘div‘).size()); //3 个
alert($(‘#box‘).size()); //1 个,后面两个失明了
alert($(‘.box‘).size()); //3 个

同理,你也可以直接使用 jQuery 核心属性来操作:
alert($(‘#box‘).length); //1 个,后面失明了

$(‘#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 选择器在获取节点对象的时候不但简单, 还内置了容错功能, 这样避免像 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 对象

时间: 2024-11-06 18:02:37

jQuery学习笔记之二——常规选择器的相关文章

jQuery学习笔记(二):this相关问题及选择器

上一节的遗留问题,关于this的相关问题,先来解决一下. this的相关问题 this指代的是什么 这个应该是比较好理解的,this就是指代当前操作的DOM对象. 在jQuery中,this可以用于单个对象,也可以用于多个对象. $('btn').click(function(){ alert(this.innerHTML); // 单个对象,this指代当前id为btn的DOM对象 }); $('div').each(function(index){ alert(this.innerHTML)

jQuery学习笔记(二)使用选择器一

jQuery选择器是jQuery框架的基础,jQuery对事件的处理.DOM操作.CSS动态控制.Ajax通信.动画设计都是在选择器基础上进行的 注意,在jQuery中通过各种选择器和方法获取的结果集合实际上都是一个jQuery对象 基本选择器 说明 返回值 #id 根据给定的ID匹配一个元素,如果选择器中包含特殊字符,可以用两个斜杠转义 单个元素 element 根据指定的元素类型名称选择该类型所有元素 同类型集合元素 .class 根据指定的类名选择所有同类元素 集合元素 * 在所限定的范围

jQuery学习笔记(一)——选择器

常规选择器: 1.$('#box') ID选择器,获取一个ID为box的DOM对象 2.$('.box') CLASS选择器,获取一个class为box的DOM对象 3.$('div') 元素名选择器,获取一个元素名为div的DOM对象 进阶选择器: 1.$('div,#box,.box') 群组选择器,获取元素名为div.ID为box.class为box的DOM对象 2.$('div #box') 后代选择器,获取div中ID为box的DOM对象 另一种写法$('div').find('#bo

jQuery学习笔记(二)

jQuery的DOM操作  html操作 1 // html() 2 // 获取 -- 北京节点的HTML代码 3 console.log($("#bj").html()); 4 // 设置(重置内容,不是追加或累加) -- 天津节点设置区的内容 5 $("#tj").html("天津<ul><li>塘沽区</li></ul>"); 文本操作 -- text() 1 //text() 2 //获取

jQuery学习笔记之可见性过滤选择器

可见性过滤选择器是根据元素的可见和不可见状态来选择相应的元素. 显示隐藏的例子: <!DOCTYPE html> <html> <head> <script src="/jquery/jquery-1.11.1.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#hide

JS与Jquery学习笔记(二)

施工中........... 一. JS 的面向对象 二. 用JS移动和复制元素 三. 如何给动态生成的元素绑定事件 四. 事件绑定函数的入参 五. $.each和$.map的用法与区别

Jquery学习笔记-表单元素选择器

1. :input表单选择器可以实现,它的功能是返回全部的表单元素,不仅包括所有<input>标记的表单元素,而且还包括<textarea>.<select> 和 <button>标记的表单元素,因此,它选择的表单元素是最广的. $("#frmTest :input")表单选择器代码获取了表单中的全部元素 2. :text表单文本选择器可以获取表单中全部单行的文本输入框元素,单行的文本输入框就像一个不换行的字条工具,使用非常广泛. 通过:

jQuery学习笔记(二)——css与节点操作

一.获取和设置元素内容 1.$('#box').html().$('#box').html('<p>123</p>') html内容 2.$('#box').text().$('box').text('123') 文本内容 3.$('#box').val().$('#box').val('123') 表单内容 二.元素属性操作 1.$('#box').attr('id') 取得id值 2.$('#box').attr('name','user') 设置属性 3.$('#box').

jquery学习笔记之二

1.one()与bind()的区别 bind():给一个对象绑定事件,可以绑定一个事件,也可以绑定多个事件. one():跟bind一样,都是给对象绑定事件的. 如给一个按钮绑定了三个相同的click事件,第单击一次按钮就会执行三个相同的事件,但是one()不一样,它只会在最开始的一次执行,然后后面无论你在单击多少次按钮,都不会执行了. 2.模拟事件   trigger() $(".btn").trigger("click");-----当页面加载完后就会立即执行c