Skip to content

Latest commit

 

History

History
 
 

07-ZeptoJS

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

ZeptoJS

Zepto是一个轻量级的针对现代高级浏览器的JavaScript库,它与jQuery有着类似的api。

Zepto01.html

  • 当页面加载完成后调用

      Zepto(function($){
      	console.log("Ready to Zepto");
      });
    
  • 获取所有标签

      $("p").css("background-color","red");
    
  • 动态创建标签

      var html = "<p>Hello</p>";
      $(".content").append(html);
      $("<p>Hello</p>").appendTo(".content");
      $("<p />",{text:"Hello",id:"greeting",css:{color:"darkblue"}}).appendTo(".content");	
    
  • 生成驼峰式命名

      Zepto(function($){
      	$(".name").find("p").each(function(){
      		$(this).text($.camelCase($(this).text()));
      	});
      });
    
  • 检查父节点是否包含给定的dom节点

      console.log($.contains($(".name")[0],$(".part")[0]));
    
  • 遍历所有元素

      $.each(["a","b","c"],function(index,value){
      	console.log("item %d is: %s",index,value);
      	var html = "item "+index+" is: "+value+"<br>";
      	$(".item").append(html);
      });
      var hash = {name:"zepto.js",size:"micro"};
      $.each(hash,function(key,value){
      	var html = "key: "+key+" value: "+value+"<br>";
      	$(".item").append(html);
      });
    
  • extend

      var target = {one: "patridge"},
      	source = {two: "turtle doves"};
      var target2 = {one: "patridge"},
      	source2 = {one: "one",two:"turtle doves"};
      console.log($.extend(target, source));
      console.log($.extend(target2, source2));
    

zepto02.html

  • $.fn:给所有Zepto对象添加方法

      $.fn.empty = function(){
      	return this.each(function(){
      		this.innerHTML = "";
      	});
      };
    
  • $.grep:获取一个数组,新数组只包含回调函数中返回true的数组项

      var grepArr = $.grep([1,2,3],function(item){
      	return item > 1;
      });
      console.log(grepArr);
    
  • $.inArray:返回数组中指定元素的索引值,没有找到返回-1,第三个参数表示从该索引值开始向查找

      var inArr1 = $.inArray("abc",["bcd","abc","edf","aaa"]);
      var inArr2 = $.inArray("abc",["bcd","abc","edf","aaa"],1);
      var inArr3 = $.inArray("abc",["bcd","abc","edf","aaa"],2);
      console.log(inArr1,inArr2,inArr3);
    
  • $.isArray:判断是否为数组

      var isArr = ["a","c"];
      console.log($.isArray(isArr));
    
  • $.isFunction:判断是否是function

    console.log($.isFunction(grepArr));

  • $.isNumeric:判断是否为有限数值或一个字符串表示的数字

    console.log($.isNumeric("111"));

  • $.isPlainObject:测试对象是否是通过{}或者new Object创建的

      var isPla1 = $.isPlainObject({});
      var isPla2 = $.isPlainObject(new Object);
      var isPla3 = $.isPlainObject(new Date);
      var isPla4 = $.isPlainObject(window);
      console.log(isPla1,isPla2,isPla3,isPla4);//true true false false
    
  • $.isWindow:判断是否为一个window对象

    这在处理iframe时非常有用,每个iframe都有它们自己的window对象,使用常规方法obj === window校验这些objects的时候会失败

    console.log($.isWindow(window));

  • $.map:遍历集合中的元素,返回通过迭代函数的全部结果(一个新数组),null和undefined将被过滤掉。

      var mapArr = $.map([1,2,3,4,5],function(item,index){
      	if(item > 1){
      		return item*item;
      	}
      })
      console.log(mapArr);
      var mapArr2 = $.map({"yao":1,"tai":2,"yang":3},function(item,index){
      	if(item>1){
      		return item*item;
      	}
      });
      console.log(mapArr2);
    

    $.map和$.grep的异同

    都是对数组进行操作

    map对数组进行遍历,返回满足条件的新数组

    grep起到筛选的作用,返回满足条件的值

  • $.noop:引用一个空函数,什么都不处理

    var callback = $.noop;

  • $.parseJSON:原生JSON.parse方法的别名,接收一个标准的JSON字符串,并返回解析后的javaScript对象

    console.log($.parseJSON("{"name":"John"}"));

  • $.trim:删除字符串首尾的空白符

      console.log(" hello world ");
      console.log($.trim(" hello world "));	
    
  • $.type:获取javascript对象的类型,可能的类型有:null,undefined,boolean,number,string,function,array,date,regexp,object,error

      console.log($.type(new Date));
      console.log($.type("hello world"));
      console.log($.type(1111));
    
  • add:添加元素到当前匹配的元素集合中来。如果没有给定content参数,则在整个document中查找

    $("li").add("p,h2").css("background-color","red");

  • addClass:添加class类名

    $("li").addClass("width");

  • after:在匹配元素后插入内容(外部插入)。内容可以为html字符串,dom节点,或者节点组成的数组

    $("li:first-child").after("<p>A note below the label</p>")

  • before:在匹配元素前面插入内容(外部插入)。内容同after。

    $("ul").before("<p>before</p>");

  • append:在每个匹配的元素末尾插入内容(内部插入)。内容同after。

    $("ul").append("<li>new list item end</li>");

  • appendTo:功能与append类似,格式相反。内容同after。

    $("<li>new list item head</li>").appendTo("ul");

  • attr:读取或设置dom的属性

    如果没有给定参数,则读取对象集合中第一个元素的属性值。

    如果参数为null,那么这个属性将被移出(类似removeAttr)

    多个属性值可以通过对象键值对的方式进行设置

    要读取DOM属性如checked和selected,使用prop

      $("form").attr("action","##");
      $("form").attr("action",null);
      console.log($("form").attr("action"));
      //多个属性
      $("form").attr({
      	action: "#",
      	method: "post"
      });
      console.log($("form").attr("method"));
    
  • children:获得匹配元素的直接子元素

      var child1 = $("ul").children();
      console.log(child1);
      var child2 = $("ul").children(":first-child");
      console.log(child2);
    
  • clone:通过深度克隆来复制集合中的所有元素,此方法不会将数据和事件处理程序复制到新的元素

      var newDiv = $("ul").clone();
      console.log(newDiv);
    

Zepto03.html

  • closest:匹配上级元素

      var clo1 = $("input[type="text"]").closest("form");
      var clo1 = $("input[type="text"]").closest("div");
      var clo2 = $("input[type="text"]").parents();
      console.log(clo1);
      console.log(clo2);
    
  • concat:添加元素并形成一个新数组

      var arr = ["1","2","3"];
      var arr2 = arr.concat("4");
      console.log(arr2);
    
  • contents:获得匹配元素的子元素,包括文字和注释节点

    console.log($(".form").contents());

  • css:读取或设置DOM元素的css属性

      var elem = $("h1");
      console.log(elem.css("background-color"));
      elem.css("background-color","#368");
      elem.css("background-color","");
    
      elem.css({
      	backgroundColor: "#8EE",
      	fontSize: 28
      });
    
      var elemStyle = elem.css(["backgroundColor","fontSize"])["fontSize"];
      console.log(elemStyle);
    
  • data:读取或写入dom的date属性

      $("#btn").click(function(){
      	$("div").data("greeting","Hello World");
      	alert($("div").data("greeting"));
      });
    
  • each:遍历集合中的每一个元素

      $("form").each(function(index){
      	console.log("input %d is %o",index,this);
      });
    
  • empty:清空对象集合中的每个元素的DOM内容

    //$(".form").empty();

  • eq:从当前对象集合中获取给定索引值的元素(从0开始)

      console.log($("li").eq(0));
      console.log($("li").eq(-1));
    
  • filter:返回对象集合中满足css选择器的项

      var filt = $("div").filter(".form");
      console.log(filt);
    
  • find:在当前集合内查找符合css选择器的每个元素的后代元素

      var find1 = $("form").find("select");
      console.log(find1);
    
  • first:获取当前元素集合中的第一个元素

    console.log($("li").first());

  • forEach:遍历集合中的每个元素

      $("ul").forEach(function(item,index,array){
      	console.log(item);
      });
    
  • get:从当前对象集合中获取所有元素或单个元素,当index参数表不存在时,以普通数组的方式返回所有元素。与eq不同,该方法返回的时DOM节点,不是Zepto对象集合

      var elements = $("h1");
      console.log(elements.get());
      console.log(elements.get(0));
    
  • has:判断当前对象集合是否含有符合选择器的元素,或者是否包含指定的DOM节点,如果有,返回新的对象集合

      var onlyLi = $("ul>li").has("a[href]");
      console.log(onlyLi);
    
  • hasClass:检查对象是否又元素含有指定的class

      var hasClass1 = $("li").hasClass("list3");
      console.log(hasClass1);//true
    
  • height:获取对象集合中的第一个元素的高度,或者设置对象集合中所有元素的高度

      console.log($("form").height());
      console.log($(window).height());
      console.log($(document).height());
      $("li").height("30px");
    
  • hide:通过设置css的属性display为none来将对象集合中的元素隐藏

    // $("h1").hide();

  • html:获取或设置对象集合元素中的html内容。

      console.log($("li").eq(2).html());
      $("li").eq(2).html("list33333");
    
  • index:获取一个元素的索引值(从0开始)

    console.log($("li[class="list3"]").index());