jQuery

jQuery

$()

1.选择器,传入字符串的时候是选择器

2.document.ready简写,传入的是函数那么就是事件的简写

特性

jQuery喜欢一个函数n种用法

jQuery中选DOM永远是数组

jQuery的选择器

初级选择器

id class tag ; css选择器写法 = string 完全等同于JQuery的写法

jQuery事件

赋值

css(key,value)=>设置css属性 (key=value)

css(options) => 设置一组css属性 对象之中的key和value一一对应

$("#box").css("backgroundColor","yellowgreen");

取值

css("string")

css(arr)

原生DOM的属性jQuery实例DOM不支持

box.style.backgroundColor = "#111";

jQuery DOM 和原生DOM对象使用方法不通用

box.css("background","#111")

jQuery DOM转换成原生DOM的方法就是加上下标

$box[0] === box;
box.style.backgroundColor = "#111";

jQuery 一组元素

选择多个jQuery元素 =>

//选择第n个元素(eq里的数值)
$(".box:eq(2)").css({
background:"yellowgreen";
})
//选择第一个元素
$(".box:first").css({
background:"yellowgreen";
})
//选择最后一个元素
$(".box:last").css({
background:"yellowgreen";
})
//给.box下所有的元素添加事件
$(".box").click(function(){
alert($(this).index());
})
中级选择器

通配选择器:*(选择全部)

后代选择器:a b c

群组选择器:a,b,c

直接子选择器:a>b

//后代选择器(ul下的所有li)
$("ul li").css({
color : "yellowgreen"
})
//直接子选择器(只对第一层子元素有作用)
$("ul>li").css({
color : "#f99"
})
//群组选择器(群组选择,同后代选择器)
$("ul li , ul span").css({
color : "#f12"
})
//通配选择器(ul下所有元素)
$("ul>*").css({
 color : "#f12"
})
高级选择器

直接子选择器:ul>li

后代选择器:ul li

ul下一个(同级)li:ul+li

ul下所有li:ul~li

//对于id为mark的所有li元素字体颜色进行修改
$("#mark+li").css({
 color : "red"
})
//对id为mark的所有元素字体颜色进行修改
$("#mark~*").css({
 color : "red"
})

直接子选择器(2):children()

后代选择器(2):find()

//对ul下的span元素进行字体颜色修改(只对单层元素有效,同直接子选择器)
$("ul").children("span").css({
 color : "skyblue"
})
//对ul下所有元素进行字体颜色修改(同后代选择器)
$("ul").find("span").css({
 color : "skyblue"
})

:所有的选择方法(除了find)如果不传递参数的话,默认是*。

属性选择器
//对所有带id的div进行背景颜色更改(只有div)
$("div[id]").css({
    backgroundColor : "red"
})
//对id为box1,并且data-id为123的div进行颜色更改
$("div[id=box1][data-id=123]").css({
    backgroundColor : "red"
})
//对所有id不是box1的div进行颜色更改
$("div[id!=box1]").css({
    backgroundColor : "red"
})
伪类选择器

位置选择器

过滤选择器

可见性选择器

包含选择器

//修改第一个div的颜色
$("div:first").css({
  background : "yellowgreen"
})
//同上
$("div").first().css({
  background : "yellowgreen"
})
//修改最后一个div的颜色
$("div").last().css({
  background : "yellowgreen"
})
//匹配一个给定索引值的元素
$("div").eq(5).css({
  background : "yellowgreen"
})
//匹配所有索引值为奇数的元素,从 0 开始计数
$("div:odd").css({
    background : "yellowgreen"
})
//匹配所有索引值为偶数的元素,从 0 开始计数
$("div:even").css({
    background : "yellowgreen"
})
//匹配所有大于给定索引值的元素
$("div:gt(1)").css({
    background : "yellowgreen"
})
//匹配所有小于给定索引值的元素
$("div:lt(5)").css({
    background : "yellowgreen"
})
文字选择器
//匹配带有hello字样的所有p标签(全局匹配 hello后要有空格,否则无法匹配到)
$("p:contains(hello)").css({
    color : "red"
})
//匹配带有span标签的li(全局匹配)
$("li:has(span)").css({
    color : "red"
})

筛选

end()

end作用:

回到最近的一个"破坏性"操作之前。即,将匹配的元素列表变为前一次的状态。

如果之前没有破坏性操作,则返回一个空集。所谓的"破坏性"就是指任何改变所匹配的jQuery元素的操作。这包括在 Traversing 中任何返回一个jQuery对象的函数--'add', 'andSelf', 'children', 'filter', 'find', 'map', 'next', 'nextAll', 'not', 'parent', 'parents', 'prev', 'prevAll', 'siblings' and 'slice'--再加上 Manipulation 中的 'clone'。

<!DOCTYPE html>
<html lang="en">
<head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
      <style>
            #box{
                  width: 100px;
                  height: 100px;
                  background: #ddd;
            }
            #box.active{
                  background: orange;
            }
      </style>
</head>
<body>
    <div id="box">
        <div class="title">
            title
            <p>   
                p
                <span>选中</span>
            </p>
        </div>
    </div>
      <script>
      $("#box")
        .children()   //div class = title
        .children()   //p
        .children() //span
        .css({
            color : "red"
        })
        .end()        //选择过程之中往回回退了一步,因此将整个p标签的样式都改变了,本来是只改变span标签中的样式
        .css({
            background : "#6cf"
        })
    </script>
</body>
</html>
is()

is作用:

根据选择器、DOM元素或 jQuery 对象来检测匹配元素集合,如果其中至少有一个元素符合这个给定的表达式就返回true。

如果没有元素符合,或者表达式无效,都返回'false'。 '''注意:'''在jQuery 1.3中才对所有表达式提供了支持。在先前版本中,如果提供了复杂的表达式,比如层级选择器(比如 + , ~ 和 > ),始终会返回true。

<!DOCTYPE html>
<html lang="en">
<head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
      <style>
            #box{
                  width: 100px;
                  height: 100px;
                  background: #ddd;
            }
            #box.active{
                  background: orange;
            }
      </style>
</head>
<body>
    <div id="box">
        <div class="title">
            title
            <p>   
                p
                <span>选中</span>
            </p>
        </div>
    </div>
      <script>
      $("box").click(function(){
            //is起到判断作用,匹配box中有无class=active
            console.log($(this).is(".active"));   //初始为true,点击变为false
            if(!$(this).is(".active")){
                //addClass()为每个匹配的元素添加指定的类名。
                $(this).addClass("active");
            }else{
                $(this).removeClass("active");
            }
            // is => 简化版
            if(!$(this).hasClass("active")){
                $(this).addClass("active");
            }else{
                $(this).removeClass("active");
            }
            //无is版
            $(this).toggleClass("active")
        })
    </script>
</body>
</html>

动画

简单动画:show、hide、fadeIn、fadeOut、slideDown、slideUp

自定义动画:animate

动画队列:queue

终止动画:stop

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        #box,#box2 {
            width: 100px;
            height: 100px;
            background: #000;
            margin: 10px;
            opacity: 1;
            float: left;
            position: absolute;
            left: 20px;
            top: 50px;
        }

        #box2 {
            background: yellowgreen;
            left: 150px;
            display: none;
        }
        #start_animate {
            position: absolute;
            z-index: 999;
        }
        #stop_animate {
            position: absolute;
            left:100px;
            z-index: 999;
        }
      </style>
</head>
<body>
    <button id="start_animate">开始动画</button>
    <button id="stop_animate">停止动画</button>
    <div id="box"></div>
    <div id="box2"></div>
    <script src="../libs/jquery-3.4.0.js"></script>
    <script>
        $("#start_animate").click(animate1);
        function animate1(){
              //$("#box").hide(1000);
            //$("#box2").show(1000);
            
            //用于绑定两个或多个事件处理器函数,以响应被选元素的轮流调用的click事件。toggle将元素设置为隐藏或可见
            //$("#box").toggle(1000);
            //$("#box2").toggle(1000);
            
            //fadeOut/fadeIn通过不透明度的变化来实现所有匹配元素的淡出/淡入效果,并在动画完成后可选地触发一个回调函数。
            //$("#box").fadeOut(1000);
            //$("#box2").fadeIn(1000);
            
            //$("#box").fadeToggle(1000);
            //$("#box2").fadeToggle(1000);
            
            //fadeTo将匹配元素设置透明度为XXX
            //$("box").fadeTo(1000,0.3);
            
            //slideToggle通过高度变化来切换所有匹配元素的可见性(上下卷动),并在切换完成后可选地触发一个回调函数。
            //$("#box").slideToggle(1000);
            //$("#box2").slideToggle(1000);
        }
        $("#start_animate").click(animate2);
        function animate2(){
            $("#box").css({
                backgroundColor : "yellowgreen"
            });
            $("#box").animate({
                left : "+=100"
            })
            .animate({
                top : "+=100"
            })
            //同步队列工具queue;想要继续执行后方异步队列必须要调用next方法
            .queue(function(next){
                $(this).css({
                    backgroundColor : "skyblue"
                })
                next();
            })
            .animate({
                left : "-=100"
            })
            .animate({
                top : "-=100"
            })
        }
        $("#stop_animate").click(function(){
            //stop([clearQueue],[jumpToEnd])
            //clearQueue:如果设置成true,则清空队列。可以立即结束动画。
            //gotoEnd:让当前正在执行的动画立即完成,并且重设show和hide的原始样式,调用回调函数等。
            $("#box").stop(true,true);//(是否清空动画队列,是否立即完成动画)
        })
    </script>
</body>
</html>

事件

在选择元素上绑定一个或多个事件的事件处理函数:on()

在选择元素上移除一个或多个事件的事件处理函数:off()

在每一个匹配的元素上触发某类事件:trigger()

一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法。这是一个自定义的方法,它为频繁使用的任务提供了一种“保持在其中”的状态:hover(fn1,fn2)鼠标移上时触发第一个函数,移出时触发第二个函数

<!DOCTYPE html>
<html lang="en">
<head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
</head>
<body>

      <ul>
            <li>hello world</li>
            <li>hello world</li>
            <li>hello world</li>
            <li>hello world</li>
            <li>hello world</li>
      </ul>

      <script src="../libs/jquery-3.4.0.js"></script>
      <script>
            // $("li").click(function(){
            //       alert(1);
            // })
            // $("li").click(function(){
            //       alert(2);
            // })

            // $("li").on("click.a",function(){
            //       alert(1)
            // })
            // $("li").on("click.b",function(){
            //       alert(2)
            // })

            // $(document).on("click",function(){
            //       alert("i'm document")
            // })
            
            // $("li").off("click.a");
            
            // trigger 触发事件;
            // $("li").eq(0).trigger("click");   // 会发生事件冒泡;
            // $("li").eq(0).triggerHandler("click"); // 不会触发事件冒泡;
            
            // $("li").on("mouseenter",function(){
            //       $(this).css({
            //             backgroundColor : "red"
            //       })
            // })
            // $("li").on("mouseleave",function(){
            //       $(this).css({
            //             backgroundColor : "#fff"
            //       })
            // })
          
            // 复合事件 ; hover
            $("li").hover(function(){
                  $(this).css({
                        backgroundColor : "red"
                  })
            },function(){
                  $(this).css({
                        backgroundColor : "#fff"
                  })
            })
              //.on简易写法
            // $("li").on({
            //       "mouseenter" : function(){
            //             $(this).css({
            //                   backgroundColor : "red"
            //             })
            //       },
            //       "mouseleave" : function(){
            //             $(this).css({
            //                   backgroundColor : "#fff"
            //             })
            //       },
            // })
          
            //事件委托;
              //给每个li添加click事件
            $("ul").on("click","li",function(){
                // console.log(this);
                $li = $("<li>hello world</li>");
                $("ul").append($li);
            })
            $("li").one("click",function(){
                alert();
            })
      </script>
</body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,472评论 1 45
  • JQ操作DOM属性节点相关方法(包含类的操作) 属性节点就是指dom元素的属性 一般如果是标签自身自带的属性,我们...
    Lins7阅读 436评论 0 0
  • 选择器选择器是jQuery的核心。 事件 动画 扩展
    wyude阅读 473评论 0 1
  • jquery 选择器 jquery用法思想一选择某个网页元素,然后对它进行某种操作jquery选择器jquery选...
    MC小帆帆阅读 213评论 0 1
  • 你,是谁 像白天鹅一样的站着 像沙漠里的荆棘,带着刺,扎着我 我爱你吗 一只卑微的灰姑娘 你的卑微让我难以接近 我...
    WHATyeah阅读 126评论 0 0