码迷,mamicode.com
首页 > Web开发 > 详细

jQuery prop() 源码解读

时间:2015-01-14 21:13:59      阅读:370      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

    prop: function( elem, name, value ) {
        var ret, hooks, notxml,
            nType = elem.nodeType;

        // don‘t get/set properties on text, comment and attribute nodes
        //标签不存在或者是文本、属性、注释节点
        if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
            return;
        }

        notxml = nType !== 1 || !jQuery.isXMLDoc( elem );

        if ( notxml ) {
            // 属性中的for与class涉及到保留字,所以通过propFix分别对应到htmlFor和className
            // propFix: {
            //     "for": "htmlFor",
            //     "class": "className"
            // }
            name = jQuery.propFix[ name ] || name;
            // propHooks: {
            //     tabIndex: {
            //         get: function( elem ) {
            //             return elem.hasAttribute( "tabindex" ) || rfocusable.test( elem.nodeName ) || elem.href ?
            //                 elem.tabIndex :
            //                 -1;
            //         }
            //     }
            // }
            //hasAttribute IE9+
            //rfocusable 用于检测可以处于焦点的表单元素正则
            hooks = jQuery.propHooks[ name ];
        }

        if ( value !== undefined ) {//赋值
            return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ?
                ret :
                ( elem[ name ] = value );

        } else {//取值
            return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ?
                ret :
                elem[ name ];
        }
    }

 

jQuery prop() 源码解读

标签:

原文地址:http://www.cnblogs.com/qianlegeqian/p/4224821.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!