前端学习之Jquery

Posted quanloveshui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端学习之Jquery相关的知识,希望对你有一定的参考价值。

一、jQuery对象

    jQuery 对象就是通过jQuery包装DOM对象后产生的对象。

    jQuery 对象是 jQuery 独有的. 如果一个对象是 jQuery 对象, 那么它就可以使用 jQuery 里的方法: $(“#test”).html();
    比如:
        $("#test").html() 意思是指:获取ID为test的元素内的html代码。其中html()是jQuery里的方法
        这段代码等同于用DOM实现代码: document.getElementById(" test ").innerHTML;

    虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法.乱使用会报错

    约定:如果获取的是 jQuery 对象, 那么要在变量前面加上$.
        var $variable = jQuery 对象
        var variable = DOM 对象

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

jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。
    美元符号定义 jQuery
    选择符(selector)"查询"和"查找" HTML 元素
  jQuery 的 action() 执行对元素的操作
  实例:
  $(this).hide() - 隐藏当前元素
  $("p").hide() - 隐藏所有 <p> 元素
  $("p.test").hide() - 隐藏所有 class="test" 的 <p> 元素
  $("#test").hide() - 隐藏所有 id="test" 的元素

    开始使用JQuery,首先引用JQ插件

<script src="jquery-3.1.1.js"></script>

二 、寻找元素(重要的选择器和筛选器)     

选择器     

基本选择器 :$("*")       所有元素
$("#id") 例如:$("#id") id="id1" 的元素
$(".class") 例如:$(".intro") 所有 class="intro" 的元素
$("element") 例如:$("p") 所有 <p> 元素
$(".class,p,div") 层级选择器 :$(".outer div") $(".outer>div") $(".outer+div") $(".outer~div") 基本筛选器 :$("li:first") 第一个 <li> 元素
$("li:eq(2)") 列表中的第2个元素(index 从 0 开始)
$("li:even") 所有偶数 <li> 元素
$("li:gt(1)") 列出 index 大于 1 的元素 属性选择器 :$(‘[id="div1"]‘) $(‘["alex="sb"][id]‘) 表单选择器 :$("[type=‘text‘]")----->$(":text") (简写) 注意只适用于input标签 $("input:checked")

筛选器

过滤筛选器: $("li").eq(2)  $("li").first()  $("ul li").hasclass("test")
查找筛选器:
    $("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() //获取div标签的兄弟
技术图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery-3.1.1.js"></script>
    <style>
        .menu
              height: 500px;
              width: 30%;
              background-color: gainsboro;
              float: left;
          


        .title
             line-height: 50px;
             background-color: #425a66;
             color: forestgreen;
         .hide
             display: none;
         


    </style>
</head>
<body>

<div class="outer">
    <div class="menu">
        <div class="item">
            <div class="title" onclick="show(this);">菜单一</div>
            <div class="con">
                <div>111</div>
                <div>111</div>
                <div>111</div>
            </div>
        </div>
        <div class="item">
            <div class="title" onclick="show(this);">菜单二</div>
            <div class="con hide">
                <div>222</div>
                <div>222</div>
                <div>222</div>
            </div>
        </div>
        <div class="item">
            <div class="title" onclick="show(this);">菜单三</div>
            <div class="con hide">
                <div>333</div>
                <div>333</div>
                <div>333</div>
            </div>
        </div>

    </div>
    <div class="content"></div>

</div>

</body>
<script>
          function show(self)
//              console.log($(self).text())
              $(self).next().removeClass("hide") //去除选中标签的下一个标签的hide样式 例如选中菜单二标签,就是让<div>222</div>显示
              $(self).parent().siblings().children(".con").addClass("hide")

          
    </script>
</html>
左侧菜单例子
技术图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
     <script src="jquery-3.1.1.js"></script>
    <style>

        *
            margin: 0px;
            padding: 0px;
        
        .tab_outer
            margin: 0px auto;
            width: 60%;
        
        .menu
            background-color: #cccccc;
            /*border: 1px solid red;*/
            line-height: 40px;
        

        .menu li
            display: inline-block;
        
        .menu a
            border-right: 1px solid red;
            padding: 11px;
        
        .content
            background-color: tan;
            border: 1px solid green;
            height: 300px;
        
        .current
            background-color: darkgray;
            color: yellow;
            border-top: solid 2px rebeccapurple;
        

         .hide
            display: none;
        

    </style>
</head>
<body>

<div class="tab_outer">
          <ul class="menu">
              <li xxx="c1" class="current" onclick="tab(this);">菜单一</li>
              <li xxx="c2" onclick="tab(this);">菜单二</li>
              <li xxx="c3" onclick="tab(this);">菜单三</li>
          </ul>
          <div class="content">
              <div id="c1">内容一</div>
              <div id="c2" class="hide">内容二</div>
              <div id="c3" class="hide">内容三</div>
          </div>

      </div>

</body>

<script>
    function tab(self) 
       $(self).addClass("current");
       $(self).siblings().removeClass("current");
       var s=$(self).attr(xxx); //attr 设置或返回被选元素的属性值。当点击菜单一时 s="c1"
       $("#"+s).removeClass("hide").siblings().addClass("hide");// "#"+s为字符串拼接=#c1 即$("#"+s)=$(#c1)  jquery选中的标签去除hide他的兄弟标签添加hide

       

</script>

</html>
tab切换

三  、操作元素(属性 CSS 和 文档处理) 

属性操作

$("p").text()    $("p").html()   $(":checkbox").val()
$(".test").attr("alex")   $(".test").attr("alex","sb") 
$(".test").attr("checked","checked")  $(":checkbox").removeAttr("checked")
$(".test").prop("checked",true)
$(".test").addClass("hide")
技术图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery-3.1.1.js"></script>
</head>
<body>
 <button onclick="selectall();">全选</button>
     <button onclick="che();">取消</button>
     <button onclick="reverse();">反选</button>

     <table border="1">
         <tr>
             <td><input type="checkbox"></td>
             <td>111</td>
         </tr>
         <tr>
             <td><input type="checkbox"></td>
             <td>222</td>
         </tr>
         <tr>
             <td><input type="checkbox"></td>
             <td>333</td>
         </tr>
         <tr>
             <td><input type="checkbox"></td>
             <td>444</td>
         </tr>
     </table>



</body>

<script>

     function selectall()
                 $("table :checkbox").prop("checked",true)
             
      function che()
                 $("table :checkbox").prop("checked",false)
             

     function reverse()
               //each() 方法规定为每个匹配元素规定运行的函数。
               $("table :checkbox").each(function()
                     if ($(this).prop("checked"))
                         $(this).prop("checked",false)
                     
                     else 
                         $(this).prop("checked",true)
                     

                 );
</script>
</html>
正反选

CSS操作

(样式)   css("color:‘red‘,backgroud:‘blue‘") 
(位置)   offset()    position()  scrollTop()  scrollLeft()    
(尺寸)   height()  width()  
技术图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery-3.1.1.js"></script>
    <script>


          window.onscroll=function()

              var current=$(window).scrollTop();
              console.log(current)
              if (current>100)

                  $(".returnTop").removeClass("hide")
              
              else 
              $(".returnTop").addClass("hide")
          
          


           function returnTop()
//               $(".div1").scrollTop(0);

               $(window).scrollTop(0)
           




    </script>
    <style>
        body
            margin: 0px;
        
        .returnTop
            height: 60px;
            width: 100px;
            background-color: darkgray;
            position: fixed;
            right: 0;
            bottom: 0;
            color: greenyellow;
            line-height: 60px;
            text-align: center;
        
        .div1
            background-color: orchid;
            font-size: 5px;
            overflow: auto;
            width: 500px;
        
        .div2
            background-color: darkcyan;
        
        .div3
            background-color: aqua;
        
        .div
            height: 300px;
        
        .hide
            display: none;
        
    </style>
</head>
<body>
     <div class="div1 div">
         <p>hello</p>
         <p>hello</p>
         <p>hello</p>
         <p>hello</p>
         <p>hello</p>
         <p>hello</p>
         <p>hello</p>
         <p>hello</p>
         <p>hello</p>
         <p>hello</p>
         <p>hello</p>
         <p>hello</p>
         <p>hello</p>
         <p>hello</p>
         <p>hello</p>
         <p>hello</p>
         <p>hello</p>
         <p>hello</p>

     </div>
     <div class="div2 div"></div>
     <div class="div3 div"></div>
     <div class="returnTop hide" onclick="returnTop();">返回顶部</div>
</body>
</html>
返回顶部
技术图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .back
            background-color: rebeccapurple;
            height: 2000px;
        

        .shade
            position: fixed;
            top: 0;
            bottom: 0;
            left:0;
            right: 0;
            background-color: coral;
            opacity: 0.4;
        

        .hide
            display: none;
        

        .models
            position: fixed;
            top: 50%;
            left: 50%;
            margin-left: -100px;
            margin-top: -100px;
            height: 200px;
            width: 200px;
            background-color: gold;

        
    </style>
</head>
<body>
<div class="back">
    <input id="ID1" type="button" value="click" onclick="action1(this)">
</div>

<div class="shade hide"></div>
<div class="models hide">
    <input id="ID2" type="button" value="cancel" onclick="action2(this)">
</div>

<script src="jquery-3.1.1.js"></script>
<script>

      function action1(self) 
          $(self).parent().siblings().removeClass("hide");
      

       function action2(self) 
          $(self).parent().parent().children(".shade,.models").addClass("hide")
      
//    function action(act)
//        var ele=document.getElementsByClassName("shade")[0];
//        var ele2=document.getElementsByClassName("models")[0];
//        if(act=="show")
//              ele.classList.remove("hide");
//              ele2.classList.remove("hide");
//        else 
//              ele.classList.add("hide");
//              ele2.classList.add("hide");
//        

//    
</script>
</body>
</html>
模态对话框

文档处理

内部插入  $("#c1").append("<b>hello</b>")     $("p").appendTo("div")
              prepend()    prependTo()

外部插入  before()  insertBefore()  after insertAfter()
             replaceWith()   remove()  empty()  clone()
技术图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

</head>
<body>
            <div class="outer">
                <div class="condition">

                        <div class="icons" style="display:inline-block">
                            <a onclick="add(this);"><button>+</button></a>
                        </div>

                        <div class="input" style="display:inline-block">
                            <input type="checkbox">
                            <input type="text" value="alex">
                        </div>
                </div>
            </div>

<script src="jquery-3.1.1.js"></script>
    <script>

            function add(self)
                var $duplicate = $(self).parent().parent().clone();
                $duplicate.find(a[onclick="add(this);"]).attr(onclick,"removed(this)").children("").text("-");
                $duplicate.appendTo($(self).parent().parent().parent());

            
           function removed(self)

               $(self).parent().parent().remove()

           

    </script>
</body>
</html>
clone例子

 

滚动菜单示例

 

以上是关于前端学习之Jquery的主要内容,如果未能解决你的问题,请参考以下文章

前端学习之jquery

前端学习之——入门篇

前端学习之Vue项目配置

前端学习之JavaScript的框架

前端学习之网站

前端学习之CSS