jQuery本身就是JavaScript,只不过是把JavaScript代码包装成拿过来就能实现特定功能的代码库!例如,我们想改变页面中所有段落标签中的文本内容:
JavaScript代码:
jQuery代码:
$()
就是jQuery中的函数,它的功能是获得()
中指定的标签元素。如示例中$(“p”)
会得到一组P标签元素,其中“p”表示CSS中的标签选择器。$()
中的()
不一定是指定元素,也可能是函数。
在jQuery中$()
方法等价于jQuery()
方法,前者比较常用,是后者的简写。一般只有在$()
与其它语言冲突时才会使用jQuery()
方法。
jQuery基础选择器
id 选择器
jquery能使用CSS选择器来操作网页中的标签元素。如果你想要通过一个id号去查找一个元素,就可以使用如下格式的选择器:
$("#my_id")
其中#my_id表示根据id选择器获取页面中指定的标签元素,且返回唯一一个元素。
通过#id
选择器的方式获取元素,并在元素中调用html()
方法为id="divtest"
的<div>
元素设置了文字显示在页面中。html()
方法的功能是设置或获取元素中显示的内容。
element 选择器
类似于页面中的<div>
、<span>
各个元素,虽然同属于一个容器,但有各自的功能,jQuery中可以根据元素名查找元素,格式如下:
$(“element”)
根据元素的名称可以查找到该元素,并调用css()
方法将设置该元素内容中文字显示的样式。此外,css()
方法的功能是设置或获取元素的某项样式属性。
$("div").css("font-weight","bold");
.class 选择器
$(“.class”)
* 选择器
$(“*”)
由于三个元素都包含在<div>
元素中,因此,它们都是<div>
元素的子元素,那么,就可以使用$(“div *”)
的方式获取<div>
元素中的这三个子元素,并使用html()
方法来设置它们显示的内容。
sele1,sele2,seleN选择器
$(“sele1,sele2,seleN”)
其中参数sele1、sele2到seleN为有效选择器,每个选择器之间用“,”号隔开,它们可以是之前提及的各种类型选择器,如$(“#id”)
、$(“.class”)
、$(“selector”)
选择器等。使用$(“div,p”)
选择器方式获取了其中的<div>
和<p>
元素。
ance desc选择器
$("ance desc")
其中ance desc是使用空格隔开的两个参数。ance参数(ancestor祖先的简写)表示父元素;desc参数(descendant后代的简写)表示后代元素,即包括子元素、孙元素等等。两个参数都可以通过选择器来获取。比如家族姓氏“div”,家族几代人里,都有名字里带“span”的,就可以用这个ance desc选择器把这几个人给定位出来。
parent > child选择器
parent > child
选择器的范围要小些,它所选择的目标是子集元素,相当于一个家庭中的子辈们,但不包括孙辈,它的调用格式如下:
$(“parent > child”)
prev + next选择器
通过prev + next
选择器就可以查找与“prev”元素紧邻的下一个“next”元素,格式如下:
$(“prev + next”)
过滤性选择器
:first过滤选择器
书写时以“:”号开头,通常用于查找集合元素中的某一位置的单个元素。
$(“li:first”)
表示所有li利得第一个元素,:last表示最后一个元素。
:eq(index)过滤选择器
如果想从一组标签元素数组中,灵活选择任意的一个标签元素,我们可以使用
:eq(index)
$("li:eq(2)").css("background-color", "#60F")
(index)
里的数字是数组里的编号,从0开始。
:contains(text)过滤选择器
有时候我们可能希望按照文本内容来查找一个或多个元素,那么使用:contains(text)
选择器会更加方便, 它的功能是选择包含指定字符串的全部元素,它通常与其他元素结合使用,获取包含“text”字符串内容的全部元素对象。其中参数text表示页面中的文字。
li:contains('土豪')
:has(selector)过滤选择器
可以使用包含的元素名称来过滤,:has(selector)
过滤选择器的功能是获取选择器中包含指定元素名称的全部元素,其中selector参数就是包含的元素名称,是被包含元素。
$("li:has('p')").css("background-color", "blue");
:hidden过滤选择器
:hidden
过滤选择器的功能是获取全部不可见的元素,这些不可见的元素中包括type属性值为hidden的元素。
var $strHTML = $("input:hidden").html();
$("div").html($strHTML);
:visible过滤选择器
与上一节的:hidden
过滤选择器相反,:visible
过滤选择器获取的是全部可见的元素,也就是说,只要不将元素的display属性值设置为“none”,那么,都可以通过该选择器获取。
[attribute=value]属性选择器
·[attribute=value]·属性选择器的功能是获取与属性名和属性值完全相同的全部元素
$("li[title='蔬菜']").css("background-color", "green");
[attribute!=value]属性选择器
上一节介绍的·[attribute=value]·属性选择器正好相反,·[attribute!=value]·属性选择器的功能是获取不包含属性名,或者与属性名和属性值不相同的全部元素。
$("li[title!='蔬菜']").css("background-color", "green");
[attribute*=value]属性选择器
[attribute*=value]
,它可以获取属性值中包含指定内容的全部元素。
$("li[title*='果']").css("background-color", "green");
:first-child子元素过滤选择器
使用:first
过滤选择器可以获取指定父元素中的首个子元素,但该选择器返回的只有一个元素,并不是一个集合,而使用:first-child
子元素过滤选择器则可以获取每个父元素中返回的首个子元素,它是一个集合,常用多个集合数据的选择处理。
例如有两个无序列表,使用li:first
只可以选择第一个li的子元素,而li:first-child
可以选择两个列表的li的第一个子元素。
$("li:first-child").css("background-color", "green");
:last-child子元素过滤选择器
与:first-child
子元素过滤选择器功能相反,:last-child
子元素过滤选择器的功能是获取每个父元素中返回的最后一个子元素,它也是一个集合,常用多个集合数据的选择处理。