什么是jQuery?
JQuery即javaScript 和查询(Query),是辅助javaScript开发的js类库。
核心思想:写的更少,做的更多
jQuery如何而使用:
$(function(){ //相当于winod.onload = function表示页面加载完毕
var $jqobj = $("#id"); // 表示按id查找对象
$jqobj.click(function(){ //给按钮绑定单击事件
//执行函数操作
});
});
注意:
$是jQuery中的核心函数,使用jQuery一定要引入jQuery库
jQuery中$符的功能
1.传入参数为【函数】时,表示页面加载完成之后。相当于window.οnlοad=function(){};
2.传入参数为【html字符串】时,会自动为我们创建这个和html标签对象
3.传入参数为【选择器字符串】时,表示根据id,标签,class查询对象
4.传入参数为【DOM对象】时,会把这个dom对象转换为jQuery对象
jQuery对象的本质
jQuery对象的本质是一个DOM对象的数组+jQuery提供的一系列功能函数。
Dom和JQuery对象可以相互转换
dom对象转化为jQuery对象:${dom对象}
jQuery转化为dom对象: jQuery对象[下标]去除对应的dom对象
jQuery的选择器和筛选
基础选择器:#id,标签名,.class,(selector1,selector2组合选择器)
层级选择器:
ancestor descendant:在给定的祖先元素下匹配所有的后代元素 $("祖先元素 后代元素 ");
parent > child : 在给定的父元素下匹配所有的子元素,不能是孙子元素 $(“父 > 子”)
prev+next:匹配所有紧接在prev元素后的next元素: $(“prev + next”)
prev~siblings:匹配prev元素之后的所有siblings元素
…
其他选择器在使用的时候可以参考使用文档,这里就不过多介绍。
jQuery属性操作
html():它可以设置和获取起始标签和结束标签中的内容。 和dom属性的innerHtml一样
text():它可以设置和获取起始标签和结束标签的文本。 和dom属性innerText一样
val():它可以设置和获取表单项的value属性值。 和dom属性value一样。
使用方法:$("#id或标签名或.class").html()或者text()或者val(),直接在小括号里面写上你要赋的值。
批量操作:$(":checkbox").val([“checkbox1”,“checkbox2”]);$(":radio").val([“radio1”]);也可以一次对这些进行赋值,在()中可以写多个属性,后面的()写上多个值,中括号里面的是value属性值
attr()和prop()都可以设置和获取属性值,传递一个参数表示获取值,传递两个参数表示对key的值设置为value
jQuery-dom的增删改
内部插入:(a在b的里面)
appendTo(): a.appendTo(b)表示将a的内容插入到b的内容的末尾,a成为b的一个子元素
prependTo(): a.prependTo(b)表示将a的内容插入到b的头部,a成为b的一个子元素
外部插入:(平级)
insertAfter(): a.insertAfter(b)表示得到ba
insertBefore(): a.insertBefore(b)表示得到ab
替换:
replaceWith(): a.replaceWith(b) 拿b替换a
replaceAll(): a.replaceAll(b) 用a替换掉所有的b
删除:
remove(): a.remove() 删除a标签 标签也会删除
empty(): a.empty() 清楚a标签里的所有内容 标签不会删除
jQuery-css样式操作
addClass(): 添加样式
removeClass(): 删除样式
toggleClass(): 有就删除没有就添加样式
offset(): 获取和设置元素的下标
jQuery还有一个对动画的操作,淡入淡出等等。。。
原生js和jQuery页面加载完成之后的区别
执行顺序:先jQuery页面后原生js页面
1.jQuery的页面加载完成之后是浏览器的内核解析玩页面的标签创建好dom对象之后就会马上执行
2.原生js的页面加载完成之后,出了要等浏览器内核解析完标签创建好dom对象,还要等标签显示时需要的内容加载完成。
执行次数:
1.原生js的页面加载完成之后,只会执行最后一次的复制函数
2.jQuery的页面加载完成之后会把注册的function函数,依次顺序执行
事件的冒泡
只需在子元素中写上return false;语句即可
事件对象
原生js:
jQuery:
bind同时对多个事件绑定同一个函数