jQuery基础

一,jQuery是什么?

1:jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team。

2:Query是继prototype之后又一个优秀的Javascript框架。其宗旨是——WRITE LESS,DO MORE!

3:它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器

4:jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTMLdocuments、events、实现动画效果,并且方便地为网站提供AJAX交互。

5:jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。

二,jQuery对象是什么?

 

jQuery 对象就是通过jQuery包装DOM对象后产生的对象。jQuery 对象是 jQuery 独有的如果一个对象是 jQuery 对象那么它就可以使用 jQuery 里的方法: $(“#test”).html();

$("p")[0]:jquery对象转为dom对象      
$("p").html() 等价于 $("p")[0].innerHTML

三,jQuery选择器

1:基本选择器

$("*"),$("#id"),$(".class"),$("标签名"),$(".class,p,div")

 2:层级选择器

1:$("ancestor descendant"):匹配 ancestor 下所有的后代 descendant 元素(descendant :用以匹配元素的选择器,并且它是第一个选择器的后代元素)
2:$("parent > child"):匹配 parent 下所有的子代 child 元素(child :用以匹配元素的选择器,并且它是第一个选择器的子元素)
3:$("prev + next"):匹配紧挨着 prev 的 next 元素(next :一个有效选择器并且紧接着第一个选择器)
4:$("prev ~ siblings"):匹配 prev 元素之后的所有 siblings 元素(siblings :一个选择器,并且它作为第一个选择器的同辈)

 3:属性选择器

1:$("[属性名='name']"):匹配满足属性名=name的元素
例:$("[class='div1']").css("color", "red");

2:$("[属性名='name1'][自定义属性名='name2']"):配满足属性名=name1的元素,自定义属性名=name2的元素
例:$("[class='div1'][kelvin='111']").css("color", "red");

 4:基本筛选器

1:$("li:first") : 匹配 li 元素的第一个
2:$("li:first") : 匹配 li 元素的最后一个
3:$("li:eq(2)") : 匹配 li 元素下标为2的 li 元素
4:$("li:even") : 匹配 li 元素下标为偶数的 li 元素
5:$("li:odd") : 匹配 li 元素下标为奇数的 li 元素
6:$("li:gt(1)") : 匹配 li 元素下标大于1的 li 元素

 5:表单选择器

$("[type='name']")----->$(":name")         **只适用于input标签  : $("input:checked")

 6:过滤筛选器

1:$("li").eq(2)  等价于 $("li:eq(2)")
2:$("li").first()  等价于 $("li:first")
3:$("ul li").hasclass("name") :找到 ul 下的 li 元素class值为 name 的 li 元素

 7:查找筛选器

1.1:$("parent").children("child"):匹配 parent 的子代 child     
1.2:$("parent").find("child")  :匹配 parent 的后代 child  

2.1:$("parent").next()  :匹配紧挨着 parent 的下一个同级元素
2.2:$("parent").nextAll()   :匹配 parent 下的所有同级元素
2.3:$("parent").nextUntil(指定位置)  :匹配从 parent 到 指定位置 的区间(不包括头尾)元素
                           
3.1:$("parent").prev()    :匹配紧挨着 parent 的上一个同级元素
3.2:$("parent").prevAll()    :匹配 parent 上的所有同级元素
3.3:$("parent").prevUntil(指定位置) :匹配从 parent 到 指定位置 的区间(不包括头尾)元素
                        
4.1:$("child").parent()  :匹配 child 的第一级父元素
4.2:$("child").parents()    :匹配 child 的所有父级元素对象并组成一个数组
4.3:$("child").parentUntil(指定位置)   :匹配 child 从第一级父级元素到指定位置父级元素并组成一个数组(不包括最后一个父级元素)

5:$("div").siblings() :匹配 div 的所有兄弟元素(div上下都包括)

 四,元素处理

1:属性操作

------------属性--------------
$("").attr(); 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。
$("").removeAttr();
$("").prop();  对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些也属于固有属性
$("").removeProp();
-----------CSS类-------------
$("").addClass(class|fn)
$("").removeClass([class|fn])
-----------HTML代码/文本/值-------------
$("").html([val|fn])
$("").text([val|fn])
$("").val([val|fn|arr])
---------------------------
$("").css(属性名,属性值)

2: 文档处理

//创建一个标签对象
    $("<p>")

//内部插入
    $("").append(content|fn)      ----->$("p").append("<b>Hello</b>");
    $("").appendTo(content)       ----->$("p").appendTo("div");
    $("").prepend(content|fn)     ----->$("p").prepend("<b>Hello</b>");
    $("").prependTo(content)      ----->$("p").prependTo("#foo");

//外部插入
    $("").after(content|fn)       ----->$("p").after("<b>Hello</b>");
    $("").before(content|fn)      ----->$("p").before("<b>Hello</b>");
    $("").insertAfter(content)    ----->$("p").insertAfter("#foo");
    $("").insertBefore(content)   ----->$("p").insertBefore("#foo");

//替换
    $("").replaceWith(content|fn) ----->$("p").replaceWith("<b>Paragraph. </b>");

//删除
    $("").empty()
    $("").remove([expr])

//复制
    $("").clone([Even[,deepEven]])

 3:css操作

CSS
       $("").css(name|pro|[,val|fn])
位置
        $("").offset([coordinates])
        $("").position()
        $("").scrollTop([val])
        $("").scrollLeft([val])
尺寸
        $("").height([val|fn])  :元素本身的高度
        $("").width([val|fn])  :元素本身的宽度
        $("").innerHeight()  :元素本身高度+内边距的高度
        $("").innerWidth()  :元素本身宽度+内边距的宽度
        $("").outerHeight([soptions])  :元素本身高度+内边距的高度+border宽度+(margin)
        $("").outerWidth([options])  :元素本身宽度+内边距的宽度+border宽度+(margin)

 五,事件处理

页面载入
    ready(fn)  **当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。
    方式1:$(document).ready(function(){}) 
    方式2:$(function(){})

事件处理
    $("").on(eve,[selector],[data],fn)  // 在选择元素上绑定一个或多个事件的事件处理函数。
    **  .on的selector参数是筛选出调用.on方法的dom元素的指定子元素,如:
    **  $('ul').on('click', 'li', function(){console.log('click');})就是筛选出ul下的li给其绑定
    **  click事件;

    [selector]参数的好处:
        好处在于.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事件
    
    [data]参数的调用:
             function myHandler(event) {
                  alert(event.data.foo);
              }
             $("li").on("click", {foo: "bar"}, myHandler)

 六,效果

1:基本

方法1:show([speed,[easing],[fn]]):

speed:三种预定速度之一的字符串(“slow”,”normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)

easing:(Optional) 用来指定切换效果,默认是”swing”,可用参数”linear”

fn:在动画完成时执行的函数,每个元素执行一次。

方法2:hide([speed,[easing],[fn]])

speed:三种预定速度之一的字符串(“slow”,”normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)

easing:(Optional) 用来指定切换效果,默认是”swing”,可用参数”linear”

fn:在动画完成时执行的函数,每个元素执行一次。

方法3:toggle([speed],[easing],[fn])

speed: 隐藏/显示 效果的速度。默认是 “0”毫秒。可能的值:slow,normal,fast。”

easing:(Optional) 用来指定切换效果,默认是”swing”,可用参数”linear”

fn:在动画完成时执行的函数,每个元素执行一次。

 

版权声明:本文为sun-10387834原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/sun-10387834/p/10482922.html