zoukankan      html  css  js  c++  java
  • jQuery prop() 与 removeProp()源码解读

    prop()

        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 ];
            }
        }

     removeProp()

        removeProp: function( name ) {
            return this.each(function() {
                delete this[ jQuery.propFix[ name ] || name ];
            });
        }
  • 相关阅读:
    [bzoj1280]卖猪
    [51nod1237]最大公约数之和V3
    [cf741C]Arpa’s overnight party and Mehrdad’s silent entering
    [bzoj1576]安全路径
    [bzoj1143]祭祀
    db_writer_processes默认大小
    oracle审计功能启动关闭
    db_writer_processes默认大小
    手机发博客
    第27课 .net程序破解
  • 原文地址:https://www.cnblogs.com/qianlegeqian/p/4224821.html
Copyright © 2011-2022 走看看