[zepto]源码学习
$() : zepto选择器,与jquery选择器类似,但是不支持jquery的拓展css支持(:first,:eq,:last...)
$("div")选择页面内的全部div元素,并以集合形式返回 $("<div />")创建一个新的div元素,可以为其添加属性,写法为$("<div />",{text:"hello",id:"divTest",css:{color:'#000'} })
$.contains(parent,node):检查父节点是否包含给定的dom节点,如果两者是相同的节点,则返回 false
。
[数组&对象:核心方法]
$.each(collection,function(key,value){ //回调函数返回false时,each循环结束 }) : 以key-value形式遍历对象(数组、自定义对象等等)及其属性
$.extend(true/false,target,source):将source对象属性拷贝给target目标对象,第一个参数为true时为深拷贝,否则为浅拷贝
var target = {name:"lee"},source={name:"jack",age:30};
$.extend(true,target,source); //执行结束,target对象变为target{name:"jack",age:30}
$.fn 为zepto中的函数对象,可以在此基础上复写方法或添加自定义方法
$.grep(array,function(item){ //可以对item进行筛选,返回true或false }) 获取新数组,只包含返回true的项
$.map(ele,function(key,value){ //将返回的值以数组形式返回 }) 遍历数组并将每次遍历的回调函数返回值作为新数组
$.inArray(element,array,[fromIndex]); 返回array数组中element元素的下标 [fromIndex]可以指定开始位置,没有返回-1
$.isArray(element) , $.isFunction(ele) , $.isWindow(ele) 判定是否为数组、函数和浏览器窗口对象
$.type(obj) 返回obj的类型,与typeof不同的是可以返回其具体类型,返回值可能为:null
undefined
boolean
number
string
function
array
date
regexp
object
error
。
[字符串string:核心方法]
$.trim(str) 将string首尾空白删除 类似于原生方法 var str = " 123abc ";str.trim();
$.parseJSON(str) 将json格式的字符串str转为json对象
[节点操作:方法]
add: 向前一个节点集合中添加add元素,切记不是向前标签中写入元素
$("li").add("p") : 页面内的p元素加入页面内的li元素集合中,将所有的li和p标签的颜色设置为红色
addClass 向匹配元素上添加指定的class类名,多个class可以用空格分隔
before / after(ele) : 在所选中元素的前 / 后 插入一个新元素ele,如果所选元素为集合,则在内部每个元素前/后都添加新元素
append / appendTo 节点插入函数(查到节点的内部尾部)
append用法: $("ul").append("<li>test</li>") 容器.append("待插入内容")
appendTo用法: $("<li>test</li>").append("ul") 待插入.append("容器")
attr(属性) :添加属性,多条属性可以用对象格式添加 $("div").attr({title:"标题",id:"testID"});
children([selector]) :选择子元素,返回值为集合;可以通过children()中的[selector]对子元素进行筛选
clone(无参数) : 复制当前集合中的所有元素
closet("selector") : 逐级筛选当前节点上级元素中最近的一个满足selector的元素,仅返回最近的一个
var input = $("input[type=test]");
input.closet("form"); //找到输入框的最近外层form