zoukankan      html  css  js  c++  java
  • 非常适合新手的jq/zepto源码分析04

      $.extend = function(target){
                var deep, args = slice.call(arguments, 1)
                if (typeof target == 'boolean') {
                    deep = target
                    target = args.shift()
                }
                args.forEach(function(arg){ extend(target, arg, deep) })
                return target
       }
    

      

    扩展函数 第一个参数为boolean true 则深扩展,

            zepto.qsa = function(element, selector){
                var found,
                    maybeID = selector[0] == '#',
                    maybeClass = !maybeID && selector[0] == '.',
                    nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, // Ensure that a 1 char tag name still gets checked
                    isSimple = simpleSelectorRE.test(nameOnly)
                return (element.getElementById && isSimple && maybeID) ? // Safari DocumentFragment doesn't have getElementById
                    ( (found = element.getElementById(nameOnly)) ? [found] : [] ) :
                    (element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11) ? [] :
                        slice.call(
                            isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn't have getElementsByClassName/TagName
                                maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class
                                    element.getElementsByTagName(selector) : // Or a tag
                                element.querySelectorAll(selector) // Or it's not simple, and we need to query all
                        )
            }
    

      

    getElementByClassName     通过class获取节点

    getElementByTagName    通过标签回去

    获取单个选择器

       $.contains = document.documentElement.contains ?
                function(parent, node) {
                    return parent !== node && parent.contains(node)
                } :
                function(parent, node) {
                    while (node && (node = node.parentNode))
                        if (node === parent) return true
                    return false
                }
    

      

    document.documentElement.contains    检测某个节点下是否包含传入的子节点

      
    $.type = type      //检测对象类型
    $.isFunction = isFunction      //是否为函数
    $.isWindow = isWindow      //是否为window对象
    $.isArray = isArray      //是否为数组
    $.isEmptyObject      //是否为空对象
    $.isNumeric        //是否为有效数字
    $.inArray         //array的indexof
    $.camelCase        //驼峰命名
    $.trim           //去空
    $.map           //遍历函数,返回一个返回值的集合数组
    $.each           //遍历元素执行函数
    $.grep           //array的filter函数



    代码仅供参考,具体功能可以自己扩展。

    http://www.cnblogs.com/jiebba/p/6529854.html 

    http://www.cnblogs.com/jiebba    我的博客,来看吧!

    如果有错误,请留言修改下 哦!

  • 相关阅读:
    免费下载!8套最新出炉的扁平化设计风格图标
    modern.IE – Web 开发必备的 IE 浏览器测试工具
    优秀案例!教您如何设计现代简约风格网页
    Mondrian – 开源的矢量图形 Web 应用程序
    超精美!10款专业的高质量名片设计模板
    英文字体下载大全:35款高品质英文字体
    免费下载!Twitter Bootstrap V3 矢量界面素材
    WOW.js – 在页面滚动时展现动感的元素动画效果
    Cool!12幅由小图片组成的创意图像重组作品
    InstantClick – 快速响应!让你的网站与众不同
  • 原文地址:https://www.cnblogs.com/jiebba/p/6530806.html
Copyright © 2011-2022 走看看