知识点:
1、 jQuery:是一个“写得少,做得多”的JavaScript函数库
jQuery库包含以下功能:
1) HTML 元素选取
2) HTML 元素操作
3) CSS 操作
4) HTML 事件函数
5) JavaScript 特效和动画
6) HTML DOM 遍历和修改
7) AJAX
8) Utilities
除此之外,jQuery还提供了大量的插件
2、 jQuery的使用:它是一个JavaScript脚本库,不需要特别的安装,只需要在页面标签内中,通过<script>标签引入jQuery库即可
jQuery下载地址:https://jquery.com/download/
3、 jQuery语法:是通过选取 HTML 元素,并对选取的元素执行某些操作
基础语法:$(selector).action();
- $美元符号定义jQuery
- selector 选择符需要查找的元素 支持css1~css3中的主流选择器
- action() 执行对元素的操作
例如:
$("p").hide();//隐藏所有 <p> 元素
4、 jQuery选择器
页面的任何操作都需要节点的支撑,开发者如何快速高效的找到指定的节点也是前端开发中的一个重点。
jQuery提供了一系列的选择器帮助开发者达到这一目的,让开发者可以更少的处理复杂选择过程与性能优化,更多专注业务逻辑的编写。
jQuery几乎支持主流的css1~css3选择器的写法。
5、 ID选择器:$(“id”)
id选择器也是基本的选择器,jQuery内部使用JavaScript函数document.getElementById()来处理ID的获取。
原生语法的支持总是非常高效的,所以在操作DOM的获取上,如果能采用id的话尽然考虑用这个选择器
注意:id是唯一的,每个id值在一个页面中只能使用一次。如果多个元素分配了相同的id,
将只匹配该id选择集合的第一个DOM元素。但这种行为不应该发生;有超过一个元素的页面使用相同的id是无效的
通过ID选择器获取元素:
6、 Class选择器:$(“.classname”);
类选择器,相对id选择器来说,效率相对会低一点,但是优势就是可以多选
同样的jQuery在实现上,对于类选择器,如果浏览器支持,jQuery使用JavaScript的原生getElementsByClassName()函数来实现的
通过类选择器获取元素:
7、 element元素选择器:$(“标签名称”)
元素选择器,根据给定html标记名称选择所有的元素
搜索指定元素标签名的所有节点,这个是一个合集的操作。同样的也有原生方法getElementsByTagName()函数支持
根据div标签名称获取所有的div元素:
8、 全选择器:$(“*”);
全选择器,也就是 *选择器
在CSS中,经常会在第一行写下这样一段样式
* {padding: 0; margin: 0;}
通配符*意味着给所有的元素设置默认的边距。jQuery中我们也可以通过传递*选择器来选中文档页面中的元素
输出所有的页面元素:
9、 层级选择器
文档中的所有的节点之间都是有这样或者那样的关系。我们可以把节点之间的关系可以用传统的家族关系来描述,
可以把文档树当作一个家谱,那么节点与节点之间就会存在父子,兄弟,祖孙的关系了。
选择器中的层级选择器就是用来处理这种关系
子元素 后代元素 兄弟元素 相邻元素
通过一个列表,对比层级选择器的区别
$("ancestor descendant") 后代选择器:选择给定的祖先元素的所有后代元素,一个元素的后代可能该元素的一个孩子,孙子,曾孙等
$("parent > child") 子选择器:parent的直接子元素
$("prev + next") 相邻兄弟选择器:匹配所有紧接在 prev 元素后的 next 元素
$("prev ~ siblings")一般兄弟选择器:匹配 prev 元素之后的所有 siblings 元素
10、jQuery的属性:每个元素都有一个或者多个特性,这些特性的用途就是给出相应元素或者其内容的附加信息。
如:在img元素中,src就是元素的特性,用来标记图片的地址
JavaScript中操作特性的DOM方法主要有3个,
getAttribute()获取特性
setAttribute()设置特性
removeAttribute() 移出特性
在jQuery中操作特性的jQuery方法:
attr() 获取/设置属性
removeAttr() 移出属性
1)、attr()与removeAttr()的用法
attr()方法的用法:
1. $(element).attr("属性名");//获取属性名的属性值
2. $(element).attr("属性","属性值");//设置属性的属性值
3. $(element).attr("属性名","函数值");//设置属性的函数值
4. $(element).attr({"属性名":"属性值","属性名":"属性值"});//给指定元素设置多个属性值
removeAttr()方法的用法:
1. $(element).removeAttr("属性名");//移出对应的属性
2)、prop()与removeProp()的用法
prop()方法的用法:
1. $(element).prop("属性名");//获取属性名的属性值
2. $(element).prop("属性名","属性值");//设置属性的属性值
3. $(element).prop("属性名","函数值");//设置属性的函数值
4. $(element).prop({"属性名":"属性值","属性名":"属性值"});//给指定元素设置多个属性值
removeProp()方法的用法:
1. $(element).removeProp("属性名");//移出对应的属性
3)、Attribute和Property的区别
Attribute
- attribute是HTML中就有的,是元素的选项|附加项。
例如:id、class、title、src、alt、href
- 值只能为string类型
- 客户端向HTML元素添加的自定义的属性,推荐称为attribute
Property
- JS DOM中,对象的成员(组成部分),所以可以用JS DOM对象访问property(用对象访问成员)
例如:tagName, nodeName, nodeType, defaultChecked (这几个属性是DOM对象中属性)
- 值类型多样化:property因为是对象的成员,类型可多样化(boolean, string, number等)
- 如果获取DOM对象中的属性,推荐使用property
11、 jQuery属性 动态操作class
1. $(element).addClass();//为每个匹配元素所要增加的一个或多个样式名
- 方法不会替换一个样式类名。它只是简单的添加一个样式类名到元素上
2. $(element).removeClass();//每个匹配元素移除的一个或多个用空格隔开的样式名
3. $(element).toggleClass();//在匹配的元素集合中的每个元素上添加或删除一个或多个样式类,取决于这个样式类是否存在或值切换属性。即:如果存在(不存在)就删除(添加)一个类
12、jQuery属性的.html()与.text()方法
1)、$(element).html()方法
获取集合中第一个匹配元素的HTML内容 或 设置每一个匹配元素的html内容.
1. $(element).html() 获取element元素的HTML内容
2. $(element).html("htmlString") 为每一个匹配元素添加html内容
重要说明:$(element) .html()方法内部使用的是DOM的innerHTML属性来处理的,
所以在设置与获取上需要注意的一个最重要的问题,这个操作是针对整个HTML内容(不仅仅只是文本内容)
2)、$(element).text()方法
得到匹配元素集合中每个元素的文本内容结合,包括他们的后代,或设置匹配元素集合中每个元素的文本内容为指定的文本内容。
1. $(element).text() 获取element元素的文本内容
2. $(element).text("textString") 用于设置匹配元素内容的文本
3)、$(element).html()与 $(element).text()之间的差异
.html与.text的方法操作是一样,只是在具体针对处理对象不同
.html处理的是元素内容,.text处理的是文本内容
.html只能使用在HTML文档中,.text 在XML 和 HTML 文档中都能使用
如果处理的对象只有一个子文本节点,那么html处理的结果与text是一样的
火狐不支持innerText属性,用了类似的textContent属性,.text()方法综合了2个属性的支持,所以可以兼容所有浏览器
13、jQuery属性的val()方法:主要是用于处理表单元素的值
比如:input, select 和 textarea。
JavaScript中的value属性
1. $(ele).val() 获取匹配的元素集合中第一个元素的当前值
2. $(ele).val(value) 设置匹配的元素集合中每个元素的值
通过$(ele).val()处理select元素, 当没有选择项被选中,它返回null
$(ele).val()方法多用来设置表单的字段的值
如果select元素有multiple(多选)属性,并且至少一个选择项被选中,
$(ele).val()方法返回一个数组,这个数组包含每个选中选择项的值
14、jQuery样式操作$(element).css()方法:获取元素样式属性的计算值或者设置元素的CSS属性
1)$(element).css()方法使用方法
1. $(element).css("属性名") //获取匹配元素集合中的第一个元素的样式属性的计算值
2. $(element).css(["属性名1","属性名2"]) //传递一个数组,返回一个对象结果
3. $(element).css("属性","属性值") //设置元素的css样式
4. $(element).css({"属性1":"属性值1","属性2":"属性值2"}) //可以传一个对象,同时设置多个样式
5. $(element).css({属性名,function}) //可以传入一个回调函数,返回取到对应的值进行处理
2)注意事项
1、浏览器属性获取方式不同,在获取某些值的时候都jQuery采用统一的处理,比如颜色采用RBG,尺寸采用px
2、$(element).css()方法支持驼峰写法与大小写混搭的写法,内部做了容错的处理
3、当一个数只被作为值(value)的时候,jQuery会将其转换为一个字符串,并添在字符串的结尾处添加px,
例如 .css("width",50}) 与 .css("width","50px"})一样
3)$(element).width()和$(element).height()
1、$(element).width() 获取或设置元素的宽度
2、$(element).height() 获取或设置元素的高度