jquery可以通过非常简短、简洁的代码,实现与javascript相同的功能
Jquery的本质还是javascript,Javascript里边95以上的功能都有被jquery给封装好,例如对dom、事件、ajax等都有封装,如果是javascript是布料,那么jquery就是成品的衣服
比较著名的有 Prototype、YUI、jQuery、mootools、Bindows、extjs以及国内的 JSVM 框架等
可以深入学习的有:YUI(yahoo user interface雅虎用户接口)、extjs
下载了两个形式的同一个版本的jquery:①压缩的生产版本、②未压缩的开发调试版本。使用3步骤:
把jquery文件放到应用目录, 2、在应用程序文件中对jquery进行引入:
<script type=”text/javascript”src=”./jquery-3.1.1.js”></script>
3、Jquery具体的应用:${#biaoti}.css(‘color’,’blue’);//使用前需先加载页面,
注意:在应用程序文件中一定通过<script>标记对jquery进行引入:
未引入成功提示:Uncaught ReferenceError: $ is not defined(…)
什么是选择器:获得页面元素节点所使用的方法就是选择器
元素节点:<div> <p> <ul> <li>等等都是元素节点
例如javascript之前使用的:
document.getElementById()
document.getElementsByTagName();
document.getElementsByName();
可以通过id属性、class属性、标签名称等方式获得页面元素节点
s1,s2,s3代表具体上边学习的 id、class、标签选择器之一
作用:把符合s1/s2/s3特点的节点都给获得到
以上①~⑤选择器的灵感来之css样式选择器
调用方法css()可以对元素的样式进行设置
css(样式名称,值);
样式名称:color background-color width height等等css样式名称
基本选择器具体使用:
2.1 $(‘s1 s2’)--父子关系
s: selector选择器,具体可以是 id、class、标签名称等选择器-例如:?$(‘div #one’) $(‘div span’)
$(‘s1 s2’):获得s1内部全部的s2节点,不用考虑级别,又称作“派生选择器”
$(‘s1 > s2’):获得s1内部的s2节点,且s1和s2必须是父子级关系,称作“直接子元素选择器” $(‘div > span’)
$(‘s1 + s2’): 获得s1后边紧紧挨着的第一个s2兄弟关系节点--应用:$(‘div + span’)
$(‘s1 ~ s2’): 获得s1后边所有s2兄弟关系节点--应用:$(‘div ~ span’)
要通过“并且选择器”获得制定的li出来
并且选择器的具体使用
:first :last //获得第一个或最后一个元素
:odd :even //获得下标(全部元素下标从0开始计数)为奇数、偶数的元素
:eq(下标) //equal等于下标-:gt(下标) //great than 比当前下标大-:lt(下标) //less than 比当前下标小 ,
3.2 高级使用
1)普通选择器的并且关系
并且选择器: :first :last :eq :gt :lt :odd :even
普通选择器(id class 标签名称等等)也可以构成是并且关系$(‘li:first’); -----> $(‘s1s2’);
$(‘s1s2s3s4..’); s1~s4共同限制获得的元素节点,元素节点必须同时满足s1~s4的全部条件
$(‘s1,s2,s3,s4’); 基本选择器里边有联合选择器,获得的节点只要符合s1~s4其中的一个条件即可
注意:并且选择器,各个小的选择器没有前后顺序要求,使用不要产生歧义
例如 $(‘:firstli’); 产生歧义 $(‘li:first’)没有歧义
2) 匹配节点的下标计数
多个选择器通过并且关系获得节点的时候,每个选择器应用的时候,都对已经获得节点的下标进行“归位(零)”处理---?
4.1 :contains(text)---用法:匹配包含给定文本的元素
$(‘div:contains(banana)’); //获得div并且要求内部包含banana文本
<div>monkey like banana</div>
<div>dog like pear</div>
4.2 :empty用法: $(”td:empty”)匹配所有不包含子元素或者文本的空元素(元素内部没有空白、元素、文本)
$(‘div:empty’); //获得div元素 并且要求是空元素
4.3 :has(selector)匹配含有选择器(selector)所匹配的元素的元素
$(‘div:has(span)’); //获得一个含有span标签元素的元素
4.4 :parent
用法: $(”td:parent”)匹配含有子元素或者文本的元素,即匹配其下非空元素
$(‘div:parent’); //获得div,并且div非空
复选框、单选按钮、下来列表 都可以被选中
① 复选框、单选按钮-获得选中的表单域-:checked② 下拉列表:selected
表单域选中选择器使用:console.log($());
使用效果:
jquery对元素属性的相关操作
<input type=”text” name=”username” id=”username” class=”apple” value=”xiaoming” >
以上红色部分都是input框元素对象的属性
input、div、span、p、table等等html标签都是元素对象或元素节点
操作:$().attr(name);//获得name(属性名称的代表)属性
$().attr(name,value);//修改name属性值为value---$().removeAttr(name);//删除name属性
例1:$(‘input:first’).attr(‘name’);获得input元素节点的属性信息:
例2:$(‘input:first’).removeAttr(‘name’);
<div class=”apple”></div>
类似操作:
$().attr(‘class’);
$().attr(‘class’,’pear’); //同一时刻只能设置一个值
$().removeAttr(‘class’); //直接删除class属性
class属性值的快捷操作:
$().addClass(); //给class属性添加属性值(可以同时设置多个值)
$().removeClass(); //删除class属性的具体属性值(可删其中的一个或多个,并保留其他的class属性值)
$().toggleClass(); //切换属性值,有则删除、没有就添加
例:1先在css提供class类:.apple{color:red}2然后在js中加入这个类$(‘div’).addClass(‘apple’);
相对应的attr()方法使用多次,后者会覆盖前者,而使用addClass()则累加而不覆盖。
通过css()方法对元素节点的样式进行操作
具体使用:
$().css(name); //Jq中获取指定的css样式---document.getElementById().style.名称; //JS中获取操作
$().css(name,value);//Jq中设置css样式---document.getElementById().style.名称 = 值;//JS中设置操作
样式的设置有3种方式:① 行内<div style=’color:green’></div>②内部div{background-color:pink}
③外部<link href=”./14.css”rel=”stylesheet”type=”text/css”/>
① 样式统一设置为行内样式,② 如果存在同名的样式,分优先级显示(行内>>> 内部 >>>外部)
③ 在行内样式里边存在修改的样式,就直接修改,如果没有就添加一个新样式
④ 复合样式(border background margin padding等)可以直接设置
例:对div元素的css样式设置$(‘div’).css(‘width’,‘400px’);新样式直接添加,优先级高于内部样式
① 样式获取,jquery可以获取 行内、内部、外部的样式。但dom方式只能获得行内样式
样式会被设置为“行内样式”,有则修改,无则添加,(复合属性样式可直接进行设置,无需拆分为具体样式)
html()和text()都可以对标签包含的内容进行操作
<div>xxxxxxxxxxxxx</div>
具体使用:
$().html() //获得标签包含内容---$().html(yyyyy)//设置标签包含“参数”内容
$().text() //获得标签包含内容---$().text(zzzzz) //设置标签包含“参数”内容
html() 可以获取文本和html标签内容,例如可以用html()直接设置链接
text()方法只能获得文本内容(过滤html标签)
通过html()方法对div包含的内容进行修改设置:
$(‘div’).html(“欢迎访问<a href=’https://www.baidu.com’>百度</a>百度官网”);
结论:html()方法可以同时针对文本和html标签进行设置,并且设置好的html标签可以被浏览器解析使用
该val的全拼是value,可以对元素标签的value属性值进行操作,大多数情况是用在form的表单域设置
类似操作有:$().attr(‘value’);---$().attr(‘value’,xxx);
attr()和val()方法在某些方面操作的结果完全一致
val()方法具体使用:$().val();//获得元素节点的value属性值--$().val(值);//设置元素节点的value属性值
① 获得选中项目的value值
注意:上图的第一种获得选中项目的value值,一定要找到select框节点(例如 $(‘#xueli’).val());
设置哪个项目选中,给下拉列表设置具体哪个项目应该选中
$(下拉列表选择器).val([被选中项目的value值]); //val()内部是一个数组参数
例如$(‘#xueli’).val([3]); //就会使得“高中”项目选中
① 获得选中项目的value值 console.log($(‘.sex:checked’).val());
设置哪个项目选中$(全部的下拉列表).val([被选中项目的value值]); //通过“数组”参数进行设置
虽然每次只能使得一个单选按钮选中,但是val内部也需要通过数组设置参数
<input type=”radio”class=”sex”value=”男”>男---function(){$(.sex).val([‘男’]);}结果选中男