zoukankan      html  css  js  c++  java
  • jQuery运维开发之第十七天

    JQuery

    学习参考网址http://jquery.cuishifeng.cn/

    python中叫模块,在DOM/BOM/Javascript中叫类库

    现在的JQ版本有:1.x 2.x 3.x 

    建议使用1.X的版本 (向下兼容)

    JQ与DOM的转换:

      JQ对象【0】    ==》 DOM对象

      $(DOM对象)    ==》JQ对象

    一、查找元素

        相对DOM查找个元素需要10多行代码,JQ就简单很多

        选择器,直接找到某个或者某类标签

    1、id

      写法 $('#id')

    2、class

      写法 $('.c1')

    3、标签

      写法 $('a') $('div')

    4、组合  

      写法 $('a,div,.c1')   同时查找,检索这三个标签的任意一个满足即可,获取

    5、层级  

      写法 $('a div .c1') 空格分开,表示这几个标签下必须同时满足,才获取,并且是下面的子子孙孙

      另一种写法 $('a>dev') 表示只找a标签下的div

    6、基本筛选器

      :first  :last  :eq(index索引值从0开始)

    7、属性

      $('[alex]')      具有alex属性的所有标签

      $('[alex="123"]')   alex属性等于123的标签

    8、实例:多选,反选,全选

      知识点:(1) $('#tb :checkbox').prop('checked'); 获取值

             $('#tb :checkbox').prop('checked', true); 设置值

          (2) jQuery方法内置循环: $('#tb :checkbox').xxxx

          (3) $('#tb:checkbox').each(function(k){

                      // k当前索引
                      // this,DOM,当前循环的元素 $(this)
              })

          (4) var v = 条件?条件为真赋予v的值:条件为假赋予v的值

    9、筛选  

      $('#i1').next()        #标签id为#i1的下一个标签
      $('#i1').nextAll()       #标签id为#i1下的所有标签

      $('#i1').nextUntil('#ii1')    #标签id为#i1和标签id=#ii1之间的所有标签,不包括i1和ii1  

      $('#i1').prev()        #标签id为#i1的上一个标签
      $('#i1').prevAll()       与next类似
      $('#i1').prevUntil('#ii1')  

      $('#i1').parent()        #标签id为#i1的父标签
      $('#i1').parents()
      $('#i1').parentsUntil()  

      $('#i1').children()       #标签id为#i1的子孙标签
      $('#i1').siblings()       #标签id为#i1的兄弟标签
      $('p').find(‘span’)       #标签p内的span标签
      $('li:eq(1)')          #一个整数,指示元素基于0的位置,这个元素的位置是从0算起。
      $('li').eq(1)          #同上,获取匹配的第二个元素

      first()             #获取匹配的第一个元素
      last()             #获取匹配的最后个元素
      hasClass(class)        #检查当前的元素是否含有某个特定的类,如果有,则返回true

    二、操作元素

    1、文本操作:  

      $(..).text()         # 获取文本内容
      $(..).text(“<a>1</a>”)   # 设置文本内容
      $(..).html()        #获取文本内容包括标签
      $(..).html("<a>1</a>")  #设置文本内容,解析对应的标签
      $(..).val()         #获取文本框中的值
      $(..).val(..)        #设定文本框的值

    2、样式操作:

      addClass        为每个匹配的元素添加指定的类名。
      removeClass      从所有匹配的元素中删除全部或者指定的类
      toggleClass       如果存在(不存在)就删除(添加)一个类。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            .hide{
                display: none;
            }
        </style>
    </head>
    <body>
        <input id="i1" type="button" value="开关"/>
            <a class="c1 hide">fdasfdasdfasfsafasdfasfdasfas</a>
        <script src="jquery-1.12.4.js"></script>
        <script>
            $('#i1').click(function () {
    //            if ($('.c1').hasClass('hide')) {
    //                $('.c1').removeClass('hide');
    //            } else {
    //                $('.c1').addClass('hide');
    //            }
                //以下代码等同于上面的注释代码
                $('.c1').toggleClass('hide')
            })
    
        </script>
    </body>
    </html>
    View Code

    3、属性操作:

      # 专门用于做自定义属性
        $(..).attr('n')          返回被选元素的属性值。
        $(..).attr('n','v')         设置被选元素的属性值。
        $(..).removeAttr('n')          删除被选元素的属性值。
        
      # 专门用于checkbox,radio(1,2版本一定要用这个prop,用attr不行)

        <input type='checkbox' id='i1' />
        $(..).prop('checked')          获取在匹配的元素集中的属性值。
        $(..).prop('checked', true)    设置在匹配的元素的属性值

      PS:
        index 获取索引位置  

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .hide{
                display: none;
            }
            .menu{
                height: 38px;
                background-color: #eeeeee;
                line-height: 38px;
            }
            .active{
                background-color: brown;
            }
            .menu .menu-item{
                float: left;
                border-right: 1px solid red;
                padding: 0 5px;
                cursor: pointer; //鼠标变为小手
            }
            .content{
                min-height: 100px;
                border: 1px solid #eeeeee;
            }
        </style>
    </head>
    <body>
    
        <div style=" 700px;margin:0 auto">
    
            <div class="menu">
                <div  class="menu-item active" a="1">菜单一</div>
                <div  class="menu-item" a="2">菜单二</div>
                <div  class="menu-item" a="3">菜单三</div>
            </div>
            <div class="content">
                <div b="1">内容一</div>
                <div class="hide"  b="2">内容二</div>
                <div class="hide" b="3">内容三</div>
            </div>
        </div>
        <script src="jquery-1.12.4.js"></script>
        <script>
            $('.menu-item').click(function () {
                //菜单一二三的切换
                $(this).addClass('active').siblings().removeClass('active');
                //内容一二三对应的显示
                var target = $(this).attr('a');
                //属性方法
                //$(".content").children("[b='"+target+"']").removeClass('hide').siblings().addClass('hide')
                //索引方法
                $(".content").children().eq($(this).index()).removeClass('hide').siblings().addClass('hide')
            })
        </script>
    </body>
    </html>
    View Code      

    4、文档处理:

        append            
        prepend
        after              在每个匹配的元素之后插入内容
        before             在每个匹配的元素之前插入内容
        remove             从DOM中删除所有匹配的元素
        empty             删除匹配的元素集合中所有的子节点
        clone             克隆匹配的DOM元素并且选中这些克隆的副本

    5、css处理:

      $('t1').css('样式名称', '样式值')
      点赞实例应用:
        - $('t1').append()
        - $('t1').remove()
        - setInterval
        - 透明度 1 > 0
        - position
        - 字体大小,位置

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .container{
                padding: 50px;
                border: 1px solid #dddddd;
            }
            .item{
                position: relative;
                width: 30px;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <div class="item">
                <span></span>
            </div>
        </div>
        <div class="container">
            <div class="item">
                <span></span>
            </div>
        </div>
        <div class="container">
            <div class="item">
                <span></span>
            </div>
        </div>
        <div class="container">
            <div class="item">
                <span></span>
            </div>
        </div>
        <script src="jquery-1.12.4.js"></script>
        <script>
            $('.item').click(function () {
                AddFavor(this);
            });
            function AddFavor(self) {
                //DOM对象
                var fontSize = 15;
                var top = 0;
                var right = 0;
                var opacity = 1;
                var tag = document.createElement('span');
                $(tag).text('+1');
                $(tag).css('color','red');
                $(tag).css('position','absolute');
                $(tag).css('fontSize',fontSize + 'px');
                $(tag).css('right',right + 'px');
                $(tag).css('top', top + 'px');
                $(tag).css('opacity', opacity);
                $(self).append(tag);
    
                var obj = setInterval(function () {
                    fontSize = fontSize + 10;
                    top = top - 10;
                    right = top - 10;
                    opacity = opacity - 0.1;
                    $(tag).css('fontSize',fontSize + 'px');
                    $(tag).css('right',right + 'px');
                    $(tag).css('top', top + 'px');
                    $(tag).css('opacity', opacity);
                    if(opacity < 0){
                        clearInterval(obj);
                        $(tag).remove()
                    }
                },50)
    
            }
        </script>
    </body>
    </html>
    View Code

    6、位置:

      $(window).scrollTop() 获取
      $(window).scrollTop(0) 设置
      scrollLeft([val])

      offset().left 指定标签在html中的坐标
      offset().top 指定标签在html中的坐标

      position() 指定标签相对父标签(relative)标签的坐标
        <div style='position:relative'>
          <div>
            <div id='i1' style='position:absolute;height:80px;border:1px'></div>
          </div>
        </div>
      $('i1').height()            # 获取标签的高度 纯高度
      $('i1').innerHeight()        # 获取边框 + 纯高度 + ?
      $('i1').outerHeight()            # 获取边框 + 纯高度 + ?
      $('i1').outerHeight(true)      # 获取边框 + 纯高度 + ?
                     # 纯高度,边框,外边距,内边距

    请看下三个图:

    图1:

    图2:

    图3:

    7、事件   

      DOM: 三种绑定方式
        jQuery:
          $('.c1').click()
          $('.c1').....

          $('.c1').bind('click',function(){
          })

          $('.c1').unbind('click',function(){
          })
          *******************
          $('.c').delegate('a', 'click', function(){
          })
          $('.c').undelegate('a', 'click', function(){
          })

          $('.c1').on('click', function(){
          })
          $('.c1').off('click', function(){
          })

         阻止事件发生
           return false

        # 当页面框架加载完成之后,自动执行
          $(function(){
            $(...)
          })

    8、jQuery扩展:

           - $.extend $.方法
           - $.fn.extend $(..).方法
          (function(){
            var status = 1;
            // 封装变量
          })(jQuery)

      

      

  • 相关阅读:
    Importing multi-valued field into Solr from mySQL using Solr Data Import Handler
    VMware Workstation 虚拟机使用无线wifi上网配置
    Linux开发黑客
    GitHub 使用说明
    虹软人脸检测和识别C#
    C#将结构体和指针互转的方法
    笔记本电脑连接wifi,同时提供热点wifi给手机使用
    基于STM32L4的开源NBIOT开发资料
    ESP8266擦除工具完整安装
    开发快平台(M302I小e开发板系列教程)
  • 原文地址:https://www.cnblogs.com/willpower-chen/p/6113448.html
Copyright © 2011-2022 走看看