复习 | 重温jQuery和Zepto的API

Posted Jen Ho

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了复习 | 重温jQuery和Zepto的API相关的知识,希望对你有一定的参考价值。

  jq和zepto很相似有许多共同的api,zepto也出了很多与jq不一样的api,总的来说,两者更相似,但是zepto更轻量一点,正好公司也在用,复习这两个没错

  jq中的zepto的事件和ajax我没有整理,因为之前有专门的文章去详细的写了ajax和事件绑定的区别

  再学ajax--第一天

  再学ajax--第二天 | 基于php+mysql+ajax的表单注册、登录、注销

  JS进阶 | 分析JS中的异步操作

  面试 | 蚂蚁金服面试经历 也讲到了js中的绑定事件的区别bind、on、delegate,以及事件绑定 事件委托的区别等

  jquery复习

 

<!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>
<style >
  *{
    margin:0;
    padding: 0;
  }
</style>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
  /* jQuery([selector,[context]]) */
  console.log($(\'div>p\'));
  $(document.body).css("background","black");
  // 在文档的第一个表单中,查找所有的单选按钮
  console.log($(\'input:radio\',document.forms[0]))
  /*jQuery(html,[ownerDocument])*/
  $(function(){
    $(\'<div>hello world</div>\').appendTo(\'.test\');
    // 动态创建一个 div 元素(以及其中的所有内容),并将它追加到 body 元素中
    $(\'<div>\',{
      "class":"test_valid",
      text:"click me",
      click:function(){
        $(this).toggleClass("test2");
      }
    }).appendTo(".test")
    // 创建一个 <input> 元素,同时设定 type 属性、属性值,以及一些事件。
    $(\'<input>\',{
      type:\'text\',
      val:"text",
      focusin:function(){
        // alert("focusin");
      },
      focusout:function(){
        // alert("focusout");
      }
    }).appendTo(".test");
  })
    /* jQuery(callback)*/
    $(function(){
      // do something
      // 等价于$(document).ready()
    })
    /* jQuery.holdReady(hold) */
    // 延迟就绪事件,直到已加载的插件。
    // $.holdReady(true);
    // $.getScript("plugin.js",function(){
    //   $.holdReady(false)
    // })
    /* each(callback) */
     $(function(){
       $(\'.test > span\').each(function(i){
         // console.log(this);
         // console.log($(this));
         this.innerHTML="span"+i;
         // $(this).toggleClass("span"+i);
         // $(this).text("hello");
         // 跳出遍历
         // return false;
       })
     })
    /* size() */
    // jQuery 对象中元素的个数
    console.log($("div").size());
    console.log($(\'div\').length);
    /* selector、context 、get([index]) 、index([selector|element]) */
    $(function(){
      $("ul")
      // 返回传给jQuery()的原始选择器
        .append("<li>"+$(\'ul\').selector+"</li>")
      // 返回传给jQuery()的原始的DOM节点内容,即jQuery()的第二个参数。那么context指向当前的文档(document)。
        console.log($(\'ul\').context)
        console.log($(\'ul\',document.body).context)
        console.log($(\'.innerTest>span\').get(0));
        // 选择文档中所有图像作为元素数组,并用数组内建的 reverse 方法将数组反向。
        console.log($(\'.innerTest>span\').get().reverse());
        //传递一个DOM对象,返回这个对象在原先集合中的索引位置
        console.log($(\'.innerTest>span\').index(document.getElementById(\'bar\')));
        //传递一个jQuery对象
        console.log($(\'.innerTest>span\').index($(\'#bar\')));
        //传递一组jQuery对象,返回这个对象中第一个元素在原先集合中的索引位置
        console.log($(\'.innerTest>span\').index($(\'.innerTest>span:nth-child(2)\')));
    })
    /*数据缓存data*/
    $(function(){
      // 没什么卵用
      $(\'.data\').data("div-data","data");
    })
    /*queue(element,[queueName])*/
    $(function(){
      $("#show").on(\'click\',function(){
        var n = $(".queue").queue("fx");
        // 显示在匹配元素上执行的函数队列的个数
        console.log(n.length);
      })
      function resuIt(){
        $(\'.queue\').show("slow");
        $(\'.queue\').animate({left:"+=200"},2000);
        $(\'.queue\').slideToggle(1000);
      }
      resuIt()
    })
    /*queue(element,[queueName]) jQuery.extend(object)*/
    $(function(){
      // 给选择器提供新方法
      jQuery.fn.extend({
        check:function(){
          return this.each(function(){this.checked=true})
        },
        uncheck:function(){
          return this.each(function(){this.checked=false})
        }
      })
      // 扩展jQuery对象本身
      jQuery.extend({
        min:function(a,b){return a<b?a:b},
        max:function(a,b){return a>b?a:b}
      })
      $(".innerTest>input[type=checkbox]").check();
      $(".innerTest>input[type=radio]").uncheck();
      console.log(jQuery.min(1,2));
      console.log(jQuery.max(3,4));
    })
    /*属性相关*/
    $(function(){
      // attr
      console.log($(\'.innerTest>input\').eq(1).attr(\'type\'))
      $(\'.innerTest>span\').eq(2).attr({class:"innerSpan","data-span":"innerSpan"})
      // class的值为innerHTML的值
      $(\'.innerTest>span\').eq(2).attr("class",function(){return this.innerHTML})

      // removeAttr
      $(\'.innerTest>span\').eq(0).removeAttr("class");
      // prop 获取在匹配的元素集中的第一个元素的属性值。
      console.log($(".innerTest>input[type=\'checkbox").prop(\'checked\'));
      // 禁用所有checkbox
      $(".innerTest>input[type=\'checkbox\']").prop(\'checked\',function(i,val){
          return !val;
      })
      // addClass
      $(".innerTest>span:nth-child(5)").addClass("span5 span_5")
      // 加上不同的class
      $(".innerTest>span").addClass(function(){
        return "span_"+$(this).index();
      })
      // removeClass
      $(".innerTest>span").eq(0).removeClass(\'span_0\');
      // 删除最后一个元素与上面重复的class
      $(".innerTest>span:last").removeClass(function(){
        return $(this).prev().attr(\'class\');
      })
      // toggleClass 如果存在(不存在)就删除(添加)一个类。
      // 点击三下添加一个类
      let count = 1;
      $(\'.innerTest>span\').eq(5).on(\'click\',function(){
        $(this).toggleClass("highlight",count ++ % 3==0)
      })
      // 根据父元素添加类
      $(\'.innerTest>span\').eq(5).toggleClass(function(){
        if($(this).parent().is(".innerTest")){
          return "span_6"
        }
      })
      // html和text
      $(".innerTest>p移动端开发框架Zepto.js

jQuery与Zepto的异同

jQuery与Zepto的异同

zepto

jquery和zepto的异同

11-移动端开发教程-zepto.js入门教程