一、jQuery是什么?
jQuery 是一个 JavaScript 库。
jQuery 极大地简化了 JavaScript 编程。
二 、什么是jQuery对象?
jQuery 对象就是通过jQuery包装DOM对象后产生的对象。
jQuery 对象是 jQuery 独有的.
对比一下:
KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲test").html() 这…(selector).action()
翻译:$(选择器).操作()
三、 寻找元素(选择器和筛选器)
3.1 选择器
3.1.1 基本选择器
$("*") $("#id") $(".class") $(“element”) $(".class,p,div")
3.1.2 层级选择器
$(".outer div") 后代
$(".outer>div") 子代
$(".outer+div") 挨着的兄弟(向下找)
$(".outer~div") 不挨着的兄弟(向下找)
3.1.3 基本筛选器
$(“li:first”)
$(“li:eq(2)”) 第三个
$(“li:even/odd”) 偶奇数
$(“li:gt(1)”) 从2以后
$(“li:lt(1)”) 从2以前
3.1.4 属性选择器
$(’[id=“div1”]’)
3.1.5 表单选择器
$("[type=‘text’]")----->下面是简写
$(":text") 注意只适用于input标签
3.2 筛选器
3.2.1 过滤筛选器(比基本筛选器灵活)
$(“li”).eq(2)
$(“li”).first()
$(“ul li”).hasclass(“test”)
3.2.2 查找筛选器(上下内外旁)
内(子代) $(‘div’)children(".test") $(“div”).find(".test")
下 $(".test").next() $(".test").nextAll() $(".test").nextUntil()
上 $(“div”).prev() $(“div”).prevAll() $(“div”).prevUntil()
外(父母) $(".test").parent() $(".test").parents() $(".test").parentUntil()
旁 (兄弟) $(“div”).siblings()
四 、操作元素(属性,css,文档处理)
4.1 属性操作(更改属性)
--------------------------属性------------------------------
$("").attr(); 一取二换(适用自定义的属性) attr(‘a’,‘b’)
$("").removeAttr();
$("").prop(); 和attr的区别在于适用于固有属性
$("").removeProp();
--------------------------CSS类-----------------------------
$("").addClass(class|fn) 加类选择器
$("").removeClass([class|fn]) 删
--------------------------HTML代码/文本/值----------------
$("").html([val|fn])
$("").text([val|fn])
$("").val([val|fn|arr]) 用于固有属性(input等表单标签)获取值(获取value)$("").css(“color”,“red”)
4.2 文档处理
//创建一个标签对象
$("< p>")//内部插入(子插父)
向下插
$("").append(content|fn)
-----> $(“p”).append(“Hello”); p里面插入b
$("").appendTo(content)
-----> $(“p”).appendTo(“div”); 把p插到div里去
向上插
$("").prepend(content|fn)
-----> $(“p”).prepend(“Hello”);
$("").prependTo(content)
-----> $(“p”).prependTo("#foo");//外部插入
$("").after(content|fn) ----->$("p").after("<b>Hello</b>"); b插在p后
$("").before(content|fn) ----->$("p").before("<b>Hello</b>"); b插在p前
$("").insertAfter(content) ----->$("p").insertAfter("#foo"); p插在#foo后
$("").insertBefore(content) ----->$("p").insertBefore("#foo"); p插在#foo前//替换
$("").replaceWith(content|fn) -----> $ (“p”).replaceWith("Paragraph. ");
b替换p
//删除$("").empty() 清空还剩自己
$("").remove() 包括自己一起死//复制
$("").clone([Even[,deepEven]])
4.3 css操作
css
$("").css()位置
$("").offset([coordinates]) 相对于视口
$("").position() 相对于已经定位的标签
这两个都是返回一个对象,都有top和left属性
$("p").offset().top
$("").scrollTop([val]) 滚动条的位置,需要绑定监听事件(window.function(){})
$("").scrollLeft([val])
尺寸(无参获取,有参改变)
内容的尺寸
$("").height([val|fn])
$("").width([val|fn])
包括padding
$("").innerHeight()
$("").innerWidth()
包括padding和border
$("").outerHeight([options])
$("").outerWidth([options])
包括p和b和m
$("").outerHeight(true)
$("").outerWidth(true)
五 、事件
事件准备
$(document).ready(function(){}) -----------> $(function(){})
我等标签和css加载完成在加载jquery
事件绑定
$(‘ul li’).bind(‘click’, function(){console.log(‘click’);})
简写: $(‘ul li’).click(function(){console.log(‘click’);})
unbind(click)解除绑定
事件委托
$("").on(eve,[selector],[data],fn) // 在选择元素上绑定一个或多个事件的事件处理函数。
$(‘ul’).on(‘click’, ‘li’, function(){console.log(‘click’);})就是筛选出ul下的li给其绑定click事件;
好处在于.on方法为动态添加的元素也能绑上指定事件;
// $(‘ul li’).on(‘click’, function(){console.log(‘click’);})的绑定方式和
// $(‘ul li’).bind(‘click’, function(){console.log(‘click’);})一样;我通过js给ul添加了一个
//li: $(‘ul’).append(’< li>js new li< /li>’);这个新加的li是不会被绑上click事件的
//但是用 $(‘ul’).on(‘click’, ‘li’, function(){console.log(‘click’);}方式绑定,然后动态添加
//li: $(‘ul’).append(’< li>js new li< /li>’);这个新生成的li被绑上了click事件
六 、动画效果
显示隐藏
$(“p”).hide(1000);显(参数表示时间)
$(“p”).show(1000);隐
$(“p”).toggle(); 切换
滑动出入
slideDown(1000)
$("#content").slideUp(1000);
$("#content").slideToggle(1000);
淡入淡出
$("#id1").fadeOut(1000);
$("#id1").fadeToggle(1000);
$("#id1").fadeTo(1000,0.4);第二个参是调到哪里停(0~1)
$("#id1").fadeIn(1000);
以上这些函数都可以加一个回调函数(完成某事再调用该函数),意思就是动画执行完再执行的函数
KaTeX parse error: Expected '}', got 'EOF' at end of input: … alert((this).html())
}
七、 扩展方法 (插件机制)
也就是自定义方法
$.extend(object) //为JQuery 添加一个静态方法。
$.fn.extend(object) //为JQuery实例添加一个方法。
区别就是 $.extend(object) 直接调用
$.fn.extend(object) 先选出标签再调用
$.extend({
min: function(a, b) { return a < b ? a : b; },
max: function(a, b) { return a > b ? a : b; }
});
console.log($.min(3,4));$.fn.extend({
"print":function(){
for (var i=0;i<this.length;i++){
console.log($(this)[i].innerHTML)
}
}});
$(“p”).print();