码迷,mamicode.com
首页 > Web开发 > 详细

前端学习之Jquery

时间:2019-08-14 21:45:57      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:fixed   osi   htm   variable   ORC   包装   line   sha   block   

一、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

标签:fixed   osi   htm   variable   ORC   包装   line   sha   block   

原文地址:https://www.cnblogs.com/quanloveshui/p/11354742.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!