1. jQuery就是JavaScript类库(封装了DOM、BOM)
2. jQuey的简单使用
2.1 引入jQuery文件
2.2查找元素
2.3操作节点(用jQuery的方法)
3.jQuery对象与DOM对象的转换
3.1. DOM对象转化成jQuery对象
var div=document.querySelector("div");//DOM对象
console.log(div);
//DOM对象--->jQuery 对象
console.log($(div));//jQuery 对象
console.log($(document.querySelector("div")));//jQuery 对象
3.2. jQuery对象转化成为DOM对象
console.log($("#btn"));//jQuery 对象 类数组对象
//jQuery 对象--->DOM对象
console.log($("#btn").get(0));
console.log($("#btn")[0]);
4.jQuery选择器(4类 9种)
1)基本选择器(5种)
- ID选择器
$("#one")
- 类选择器
$(".apple")
- 元素(标签)选择器
$("div")
- 通配符选择器
$("*")
-
2)层次选择器(4种)
后代选择器
$("div p")
- 子代选择器
$("div>p")
- 直接兄弟选择器(紧邻着后面的)
$("div+p")
- 间接兄弟选择器(后面的所有)
$("div~p")
3)过滤选择器(6)
3.1基本过滤选择器(8种)
3.2内容过滤选择器(4种)
3.3可见性过滤选择器(2种)
3.4 属性过滤选择器(8种)
<div style="background-color:lightcoral" class="en-apple ab">
1
</div>
<div style="background-color:lightcoral" class="en apple">
2
</div>
<script>
$("div[class~='apple']").css('background','blue'); //改变属性class用空格分隔的值包含字符‘apple’的元素的背景色
$("div[class*=apple]").css('background','blue');//改变属性值含有‘apple’的div元素
</script>
3.5子元素过滤选择器(4种)
3.6表单属性过滤选择器(4种)
4)表单选择器(11种)
5.jQuery 的 DOM 操作
5.1查询操作
1.html操作
2.文本操作
3.值操作(val())
4.属性操作
设置表单属性的时候,可以用prop()来代替attr(),因为prop()的结果是true和false,更加方便
(":checkbox").attr("checked","checked"); console.log($(":radio").attr("checked"));//undefined $(":checkbox").prop("checked",true); console.log($(":radio").prop("checked"));//false
5.2样式操作(8种)
设置多个 CSS 属性
css({"propertyname":"value","propertyname":"value",...});
$("div").css({"border":"1px solid red","font-size":"50px","border-radius":"10px"})
5.3遍历节点(只找标签)
Selector:选择器
next()找下面紧邻的一个兄弟
- nextAll()/nextAll(selector)找下面所有兄弟
- prev()找上面紧邻的一个兄弟
- prevAll()/prevAll(selector)找上面所有兄弟
filter(selector) 筛选节点
console.log($("ul li").filter("li:nth-child(even)"));
5.4 创建、插入、删除
1)创建DOM节点—->$()
2)插入DOM节点
父节点.append(子节点)
- 父节点.prepend(子节点)
- 旧节点.after(新节点)
- 旧节点.before(新节点)
外部插入节点的方式不光可以插入节点,还可以交换节点的位置
<ul>
<li class="one">1111</li>
<li class="two">2222</li>
<li>3333</li>
</ul>
交换 1111和2222的位置
$(".one").before($(".two"));//交换节点位置 在one的前面插入two
$(".two").after($(".one"));//交换节点位置 在two的后面插入one
3)删除DOM节点(3个)
<button id="btn">删除</button>
<ul>
<li>111</li>
<li>222</li>
<li class="one">333</li>
<li>444</li>
<li>555</li>
</ul>
<script>
$("#btn").click(function(){
$("ul").remove();//完全删除,ul,li都删除
$("ul").empty();//只是清空ul的内容,ul还存在
$("li").remove(".one");//删除li中的
})
</script>
6.jQuery事件
6.1页面加载后执行(预加载)
$(document).ready()和window.onload事件的区别:
区别1:概念区别
1.$(document).ready() DOM结构加载完
2 window.onload 所有资源加载完
区别2:js中的出现次数
window.onload=function(){...}
一个js文件只能出现一次,如果出现多次,后面的将会把前面的覆盖$(document).ready(function(){...})
,一个js文件可以出现多次,都可以使用
区别3:有无简写
- Window.onload=function(){…} 没有简写
$(document).ready(function(){…})有简写
- 简写:
- $().ready(function(){…})
- $(function(){….})
6.2 jQuery事件绑定
1. on()
$(selector).on(事件类型,回调函数) $("ul li").on("click",function(){ alert(1); }) //“.one”下面的li $("li",".one").on("click",function(){ console.log(this); })
2.第二种方法
$("ul li").click(function(){ alert(1); })
7.jQuery动画
基本的显示和隐藏
toggle(执行时间,回调函数) 基本来回切换显示隐藏8.jQuery ajax
8.1 get()
get() 方法通过远程 HTTP GET 请求载入信息。
- 这是一个简单的 GET 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax
$(selector).get(url,data,success(response,status,xhr),dataType)
$.get() 等价于$.ajax({ url: url, data: data, success: success, dataType: dataType });
<script> $(function () { $.get("data/list.json", function (data) { console.log(data); }, "json") $.ajax({ url: "data/list.json", success: function (data) { console.log(data); }, dataType: "json" }); }) </script>
8.2 post()
post() 方法通过 HTTP POST 请求从服务器载入数据jQuery.post(url,data,success(data, textStatus, jqXHR),dataType)
$.ajax({ type: 'POST', url: url, data: data, success: success, dataType: dataType });
8.3 ajax()
w3c文档jQuery.ajax([settings])
$.ajax({ //type: 'POST', method:'POST' //请求方式 新版 url: url, data: data, success: success, dataType: dataType, error:error,、 async:true });
9.jQuery类数组操作
9.1.什么是类数组
9.2 类数组的操作
1)属性:length
console.log($("ul li").length);//length属性
2)Each():
写法1:
写法2:$("ul li").each(function(i,v){//jq对象---》DOM对象 console.log(i,v); console.log(this);//v就相当于this //console.log(this.innerHTML);//DOM对象,所以用DOM操作 //console.log(this.html());//error,因为是DOM对象,无法用jq操作 console.log($(this).html());//$() DOM对象---》jq对象,能用了 })
$.each($("ul>li"),function(i,v){ console.log(i,v); console.log(this); console.log(this.innerHTML); })
3)Eq():
console.log($("ul li").eq(0));//jq对象
4)Get():
console.log($("ul li").get());//jq对象---》DOM对象的数组 console.log($("ul li").get(0));//DOM对象 某一个内容
5)Index():
console.log($("ul li.a").index()); //获取当前元素的索引
10.jQuery扩展
10.1 扩展jQuery本身的方法 $.extend
直接通过extend 扩展的属性 会放到JQ自己身上$.extend({ min(x,y){ return x>y?y:x; } }) console.log($.min(10,3));//调用
10.2 扩展jQuery对象的方法 $.fn.extend
fn.extend扩展的属性 会放到JQ的原型上$.fn.extend({ style(bgcolor){ return this.css("background-color",bgcolor); }, check(){ return this.each(function(){ this.checked=true; }) } }) $("div").style('red');//调用 $("input[type=checkbox]").check();//调用