第十三章:第2节jQuery选择器——基本选择器

更新于:2017-12-18 16:27:03

学习jQuery先要学习选择器,什么是选择器?


前面学习DOM时,通常都是先要获取元素节点对象,然后才能对元素做添加属性、添加文本、添加子元素……等操作。


使用jQuery做这些操作时,需要通过选择器匹配到某个元素节点,返回的值是一个对象(以后我们称它为jQuery对象)。使用jQuery对象的方法可以对HTML元素做各种操作。选择器种类有很多,我们先学习最基本的选择器。


基本选择器


1.png


$('#id属性值')  ----------->document.getElementById()

$('tag标签名称')----------->document.getElementsByTagName();

$('.class属性值') class属性值选择器

$('*')     通配符选择器

$('s1,s2,s3')联合选择器


看演示代码:


1.png

1.png


详解:


注:css()是jQuery对象的方法,顾名思义,它可以更改HTML元素的style属性。


第11行代码选择器$('#username')可以匹配到37行的[<input type="text" name="username" value="xiaoqiang" id="username" />],方法css('color','red')等于是给<input>添加了属性style="color:red;"


第14行代码选择器$('input')可以匹配到37行、42行的[<input type="text" name="username" value="xiaoqiang" id="username" />,<input type="button" value="触发" onclick="f1()" />],方法css('background-color','blue')等于给这两个<input>都添加了属性style="background-color:blue;"


第17行代码选择器$('.apple')可以匹配到39行的[<div class="apple">We are studying jquery</div>],如果多个标记元素都有属性class="apple",那就匹配所有的有属性class="apple"的标记元素。


第20、23行更容易理解。$('*')匹配所有的标记元素,很少用到这个选择器。$('p,#username,.apple')等同于$('p')、$('#username')、$('.apple')这三个选择器各自匹配到的标记元素。


这5个选择器前三个经常用到,很好理解,没有什么难度。


“$”符号由来:


JS的变量和函数名可以命名为“$”,在jQuery中$()就是一个函数,它的返回值是jQuery对象。看jQuery源代码:


1.png

1.png


其实每一行jQuery代码都可以以“$()”函数开头。


jQuery对象与DOM对象的关系:


jQuery选择器返回值是jQuery对象,不是DOM的元素节点对象,因为元素节点对象可没有css()这个方法。jQuery对象与DOM对象不可以相互调用对方的成员。


我们可以用console.log打印下选择器


1.png


1.png


第一行显示的是DOM的元素节点对象

第二行显示的是jQuery对象


DOM对象与jQuery对象虽然不能调用对方的成员,但它们是可以获取到对方的,看12、13行代码:


jQuery对象[0] == DOM对象 //jquery对象包含着dom对象

$(DOM对象) == jQuery对象 //DOM的元素节点对象可作为jQuery中的选择器


获取到对方的前提:jQuery对象、DOM的元素节点对象只在仅匹配到一个元素时才可以使用上面的方法相互获取。


1.png

1.png

这种情况就不能转换。


还有一个地方注意下:


1.png


jQuery对象可以为多个元素同时添加style属性,非常方便。使用DOM的元素节点对象(27行代码)则不起作用。


总结:


通过这节的学习,可看出选择器比节点对象使用起来更方便,样式更多。这节只学习了基本选择器,后面还有很多其他类型的选择器。


1.png


在我们的手册中介绍得很详细,后面几节内容楠神也会一一举例讲解,让大家熟悉下。选择器种类很多,不是一遍两遍就能全部掌握住。这个就相当于是PHP的内置函数一样,大家不一定非得详细掌握,心里有个印象,有需要时再查手册。


从我们的手册中也可以看出,jQuery有着将近一半的内容都是在讲怎么通过选择器匹配到HTML元素


本节学习代码》》》