91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jQuery中attr和prop方法有什么不同

發布時間:2022-02-22 11:00:22 來源:億速云 閱讀:98 作者:小新 欄目:開發技術

小編給大家分享一下jQuery中attr和prop方法有什么不同,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

相比 attr,prop 是 1.6.1 才新出來的,二者從中文意思理解,都是獲得/設置屬性的方法(attributes 和 properties)。只是,window 或 document 中使用 .attr() 方法在 jQuery1.6 之前不能正常運行,由于 window 和 document 中不能有 attributes。prop 應運而生了。

之前看網上對照二者的文章,更是列出一個表來辨別什么標簽下使用 prop,什么標簽下使用 attr,諒解我是怠惰的人,最懼怕要背的東西,所以只有自己想一想辦法了。

既然我們想知道他們兩的區分,最好就看看他們的源代碼,不要被代碼長度所嚇到,我們只看關鍵的幾句:

attr 方法代碼(jQuery 版本 1.8.3)

attr: function( elem, name, value, pass ) {var ret, hooks, notxml,nType = elem.nodeType;// don't get/set attributes on text, comment and attribute nodesif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {return;}if ( pass && jQuery.isFunction( jQuery.fn[ name ] ) ) {return jQuery( elem )[ name ]( value );}// Fallback to prop when attributes are not supportedif ( typeof elem.getAttribute === "undefined" ) {return jQuery.prop( elem, name, value );}notxml = nType !== 1 || !jQuery.isXMLDoc( elem );// All attributes are lowercase// Grab necessary hook if one is definedif ( notxml ) {name = name.toLowerCase();hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook );}if ( value !== undefined ) {if ( value === null ) {jQuery.removeAttr( elem, name );return;} else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) {return ret;} else {elem.setAttribute( name, value + "" );return value;}} else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) {return ret;} else {ret = elem.getAttribute( name );// Non-existent attributes return null, we normalize to undefinedreturn ret === null ?undefined :ret;}}

prop 方法代碼(jQuery 版本1.8.3)

prop: function( elem, name, value ) {var ret, hooks, notxml,nType = elem.nodeType;// don't get/set properties on text, comment and attribute nodesif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {return;}notxml = nType !== 1 || !jQuery.isXMLDoc( elem );if ( notxml ) {// Fix name and attach hooksname = jQuery.propFix[ name ] || name;hooks = jQuery.propHooks[ name ];}if ( value !== undefined ) {if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {return ret;} else {return ( elem[ name ] = value );}} else {if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {return ret;} else {return elem[ name ];}}}

attr 方法里面,最關鍵的兩行代碼,elem.setAttribute( name, value + “” )和 ret = elem.getAttribute( name ),很明顯的看出來,使用的 DOM 的 API setAttribute 和 getAttribute 方法操作的屬性元素節點。

而 prop 方法里面,最關鍵的兩行代碼,return ( elem[ name ] = value )和 return elem[ name ],你可以理解成這樣document.getElementById(el)[name] = value,這是轉化成 JS 對象的一個屬性。

以上是“jQuery中attr和prop方法有什么不同”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西乌| 辉南县| 拉孜县| 屏南县| 栖霞市| 滨州市| 涿鹿县| 龙里县| 浦东新区| 朝阳区| 德格县| 从化市| 新闻| 永丰县| 延安市| 长垣县| 凤山市| 长岛县| 秭归县| 阳江市| 长顺县| 施秉县| 米易县| 大足县| 雷山县| 德保县| 桑植县| 商城县| 房山区| 桂平市| 商丘市| 寻乌县| 抚松县| 镇原县| 通山县| 凤台县| 特克斯县| 阳山县| 晋城| 株洲市| 邢台市|