jQuery

作者: 木子川页心 | 来源:发表于2018-11-16 19:06 被阅读33次

1、引入jQuery

1.从jQuery.com下载jquery库
2从CDN中载入jQuery

2、基本语法

基础语法:$(selector).action()

$定义jQuery
选择符(selector)“查询”和“查找”HTML元素
jQuery的action()执行对元素的操作

举个栗子

<body>
    <p>我是一个p元素</p>
    <p>我是一个p元素</p>
    <p>我是一个p元素</p>
<script>
   $(document).ready(function(){
    $("p").click(function(){
        $(this).hide();
    })
   })
</script>
</body>

3.事件

1.常用事件方法

点击事件:单击、双击
获取焦点
鼠标的各种事件

2.绑定事件
   <body>
    <button id="clickMeBtn">btn</button>

<script>
   $(document).ready(function(){
      $("#clickMeBtn").bind("click",clickHandler)
   });
   function clickHandler(e){
    console.log("clickHandler");
   }
</script>
</body>

bind可以用on代替,bind的底层实现就是用on

3.解除绑定事件
<body>
    <button id="clickMeBtn">btn</button>

<script>
   $(document).ready(function(){
      $("#clickMeBtn").bind("click",clickHandler)
      $("#clickMeBtn").unbind("click",clickHandler)
   });
   function clickHandler(e){
    console.log("clickHandler");
   }
</script>
</body>

unbind可以用off代替

4.事件的目标
5.事件的冒泡
6.自定义事件
<button id="clickMeBtn">点我</button>

<script>
   $(document).ready(function(){
        $("#clickMeBtn").click(function(){
            var e= jQuery.Event("myEvent");
            $("#clickMeBtn").trigger(e);

        });
        $("#clickMeBtn").bind("myEvent",function(event){
            console.log(event);
        })

   })
</script>
</body>

4.jQuery的HTML操作

1.jQuery捕获
<body>
    <p id="text">this is a p<a>这是一个a标签</a></p>
    <button id="#btn">btn</button>

<script>
   $(document).ready(function(){
        $("#btn").click(function(){
            alert("text"+$("#text").text());
        })
   })
</script>
</body>
<body>
    <p id="text">this is a p<a>这是一个a标签</a></p>
    <button id="#btn">btn</button>

<script>
   $(document).ready(function(){
        $("#btn").click(function(){
            alert("text"+$("#text").html());
        })
   })
</script>
</body>

html可以获取内部的子标签,text只能获取具体的内容

获取input的value值
<body>
    <p id="text">this is a p<a>这是一个a标签</a></p>
    <button id="#btn">btn</button>
     <input type="text" id="inp" value="大家好">
<script>
   $(document).ready(function(){
        $("#btn").click(function(){
            alert("text"+$("#inp").val());
        })
   })
</script>
</body>

获取属性

<body>
    <p ><a href="http://www.baidu.com" id="aid"></a></p>
    <button id="#btn">btn</button>
<script>
   $(document).ready(function(){
        $("#btn").click(function(){
            alert("text"+$("#aid").attr("href"));
        })
   })
</script>
</body>
2.jQuery设置
<body>
    <p id="p1">hello world</p>
    <button id="btn">点我1</button>
    <p id="p2">hello world</p>
    <button id="btn2">点我2</button>
<script>
   $(document).ready(function(){
        $("#btn2").click(function(){
            $("#p1").text("点我你就变了哈哈哈哈")
        });
        $("#btn2").click(function(){}
            $("#p1").html("<a>猜我变成什么样</a>")
        });
   })
</script>
</body>
3.jQuery添加元素
 function appendText(){
    html/jquery/Dom
    var text1 = '<p>iwen</p>';
    var text2 = $("<p></p>").text("ime");
    var text3 = document.creteElement("p");
    text3.innerHtml = "acely";
    $("body").append(text1,text2,text3);
   }

append在被选中元素的结尾插入内容
prepend在被选中元素的开头插入内容
before在被选中元素的之前插入内容
after在被选入元素之后插入内容

<body>
    <p id="p1">hello world</p>
    <button id="btn">btn</button>
    
<script>
   $(document).ready(function(){
        $("#btn").click(function(){
            $("#p1").append("这是我用append添加的内容");
        })
        $("#btn").click(function(){
            $("#p1").prepend("这是我用prepend添加的内容");
        })
        $("#btn").click(function(){
            $("#p1").before("这是我用before添加的内容");
        })
        $("#btn").click(function(){
            $("#p1").after("这是我用after添加的内容");
        })
   })

4.jQuery删除元素

remove全部删除
empty删除里面的子元素

<body>
    <div id="div" style="width: 200px;height: 200px;border: 1px solid black;background-color: #ededed">
        hello
        <p >hello world</p>
        <p>hello</p>
     </div>
    <button id="btn">删除</button>
<script>
   $(document).ready(function(){
    $("#btn").click(function(){
        $("#div").remove();
    });
   });
</script>
<body>
    <div id="div" style="width: 200px;height: 200px;border: 1px solid black;background-color: #ededed">
        hello
        <p >hello world</p>
        <p>hello</p>
     </div>
    <button id="btn">删除</button>
<script>
   $(document).ready(function(){
    $("#btn").click(function(){
        $("#div").empty();
    });
   });
</script>
</body>

5.jQuery的效果

1.淡入淡出

fadeIn()淡入

<body>
    <button id="in">fadein</button>
    <div id="div1" style="width: 80px;height: 80px;background-color: aqua;display: none;"></div>
    <div id="div2" style="width: 80px;height: 80px;background-color: red;display: none;"></div>
    <div id="div3" style="width: 80px;height: 80px;background-color: green;display: none;"></div>

<script>
   $(document).ready(function(){
        $("#in").on("click",function(){
            $("#div1").fadeIn(1000);
            $("#div2").fadeIn(1000);
            $("#div3").fadeIn(1000);
        })
   })
</script>
</body>

fadeOut()淡出

<body>
   <button id="out">fadeout</button>
   <div id="div1" style="width: 80px;height: 80px;background-color: aqua;"></div>
   <div id="div2" style="width: 80px;height: 80px;background-color: red;"></div>
   <div id="div3" style="width: 80px;height: 80px;background-color: green;"></div>

<script>
  $(document).ready(function(){
       $("#out").on("click",function(){
           $("#div1").fadeOut(1000);
           $("#div2").fadeOut(1000);
           $("#div3").fadeOut(1000);
       })
  })
</script>
</body>

fadeTo()淡出的时候设置透明度

<body>
    <button id="in">fadein</button>
    <button id="out">fadeout</button>
    <button id="toggle">toggle</button>
    <button id="to">to</button>
    <div id="div1" style="width: 80px;height: 80px;background-color: aqua;display: none;"></div>
    <div id="div2" style="width: 80px;height: 80px;background-color: red;display: none;"></div>
    <div id="div3" style="width: 80px;height: 80px;background-color: green;display: none;"></div>

<script>
   $(document).ready(function(){
        $("#in").on("click",function(){
            $("#div1").fadeIn(1000);
            $("#div2").fadeIn(1000);
            $("#div3").fadeIn(1000);
        });
        $("#out").on("click",function(){
            $("#div1").fadeOut(1000);
            $("#div2").fadeOut(1000);
            $("#div3").fadeOut(1000);
        });
        $("#toggle").on("click",function(){
            $("#div1").fadeToggle(1000);
            $("#div2").fadeToggle(1000);
            $("#div3").fadeToggle(1000);
        });
        $("#to").on("click",function(){
            $("#div1").fadeTo(1000,0.5);
            $("#div2").fadeTo(1000,0.7);
            $("#div3").fadeTo(1000,0.3);
        })
   })
</script>
</body>

效果对比图


图片.png 图片.png

fadeToggle()相当于开关,既可淡入也可淡出

2.滑动

slideDown()滑出
slideToggle()既可以滑出也可以隐藏
slideUp()隐藏

<style>
    #content,#flipshow,#fliphide,#fliptoggle{
        padding:5px;
        text-align: center;
        background-color: #ece023;
        border: solid 1px #ece099;
    }
   #content{
    padding:50px;
    display: none;
   }  
    </style>

</head>
<body>
    <div id="flipshow">出现</div>
    <div id="fliphide">隐藏</div>
    <div id="fliptoggle">同时操作</div>
    <div id="content">hello world</div>

<script>
   $(document).ready(function(){
     $("#flipshow").click(function(){
        $("#content").slideDown(1000);
     });
     $("#fliphide").click(function(){
        $("#content").slideUp(1000);
     });
     $("#fliptoggle").click(function(){
        $("#content").slideToggle(1000);
     });
   })
</script>
</body>
3.回调
<body>
    <button>隐藏</button>
    <p>hello world hello world hello world hello world</p>

<script>
   $(document).ready(function(){
        $("button").click(function(){
            $("p").hide(1000,function(){
                alert("动画结束,这个方法被回调")
            })
            
        })
   })
</script>
4.隐藏与显示

toggle既可以控制显示也可以控制隐藏

<body>
    <p>hello</p>
    <button id="hide">隐藏</button>
    <button id="show">显示</button>
    <button id="toggle">可控制</button>
<script>
   $(document).ready(function(){
        $("#hide").click(function(){
                $("p").hide(1000);

        });
        $("#show").click(function(){
                $("p").show(1000);

        });
        $("#toggle").click(function(){
                $("p").toggle(1000);

        })
   })
</script>
</body>

6.jQuery的扩展

1.扩展
2.no Conflict

消除掉$对于jQuery的缩写
对于jQuery比较难拼写,可声明一个对象代替

<body>
    <div>hello</div>
    <button id="btn">btn</button>
<script>
   var myjq = $.noConflict();
   myjq(document).ready(function(){
        myjq("#btn").on("click",function(){
            myjq("div").text("new hello");
        })
   })
</script>
</body>

7.CSS操作与盒子模型

1.css操作
<body>
    <div></div>

<script>
   $(document).ready(function(){
    $("div").css("width","100px");
    $("div").css("height","100px");
    $("div").css("background","red");
   })
</script>
</body>

另一种方式

<body>
    <div></div>

<script>
   $(document).ready(function(){
      $("div").css({
       width:"100px",
       height:"100px",
       background:"red"
      })
   })
</script>
</body>

可以通过addClass("类名")来设置css样式
removeClass("类名")移出掉之前的style样式

2.盒子模型

height() width()元素本身的高度,不包括margin boder padding
innerheight() innerwidth()包括元素本身加margin padding
outerHeight(true)整个盒子的全部高度
outerHeight()元素本身,内边距padding,边框boder

8.元素

1.元素的遍历

向上遍历:子级找到父级一直向上
parent()最近的一个父元素
parents()是指所有的父元素
parentUntil()指的是由p元素到div1这个区间

  $("p").parentUntil("#div1").css({border:"3px solid red"})

向下遍历
children()可选参数只向下遍历一级针对它的儿子辈
find()必选参数,可以针对它的所有子元素

<style>
        #div1{
            width: 500px;
            height: 200px;
            border: 3px solid chocolate;
        }
        #div2{
            width: 400px;
            height: 150px;
            margin-top: 10px;
            margin-left: 10px;
            border: 3px solid chocolate;
        }
        p{
            margin-top: 10px;
            margin-left: 10px;
            width: 150px;
            height: 80px;
            border: 3px solid chocolate;
        }
    </style>
</head>
<body>
    <div id="div1">div1
        <div id="div2">div2
            <p>
                <a>
                    hello
                </a>
            </p>
        </div>
    </div>

<script>
   $(document).ready(function(){
       $("#div1").children("#div2").css({border:"3px solid red"})
        $("#div1").find("a").css({border:"3px solid red"})
   })
</script>
</body>

同级遍历
sibings()除了h4其他同级的元素都被修改掉

$(document).ready(function(){
        $("h4").siblings().css({
            border:"3px solid red"
        })
   })

next()h4的下一个元素被修改

 $(document).ready(function(){
        $("h4").next().css({
            border:"3px solid red"
        })
   })

nextAll()下面所有的元素都被修改
nextUntil()h4到h6的区间(向下)

 $(document).ready(function(){
        $("h4").nextUntil("h6").css({
            border:"3px solid red"
        })
   })

prev()上一个元素被修改
prevAll()向上的所有元素被修改
prevUntil()区间

2.元素的过滤

first()寻找同样元素的第一个
last()最后一个
eq(id)返回当前元素的索引id
filter(“标准”)满足这个集合的所有元素
net(“标准”)不满足这个集合的所有元素

9.菜单

1.垂直菜单实现
2.水平菜单实现

相关文章

网友评论

      本文标题:jQuery

      本文链接:https://www.haomeiwen.com/subject/qrjrfqtx.html